エクセル マクロ 言 語 とは エクセルのマクロとは 手 番 をあらかじめ 記 述 しておくことにより 通 常 手 操 作 している 処 理 を 自 動 化 すること 自 動 化 したものです マクロで 手 番 を 記 録 すれば 繰 り 返 し 作 業 を 自 動 化 できます また 連 続 的



Similar documents
Microsoft Word - 第3章.doc

<4D F736F F D208DEC90AC837D836A B81698F4390B394C5816A2E646F63>

動的串刺し計算のコツ

1. 表 から 値 を 抽 出 する 説 明 1.1. 表 から 値 を 抽 出 するための 関 数 について 説 明 します LOOKUP VLOOKUP HLOOKUP 関 数 は 検 索 値 に 対 応 する 値 を 検 索 値 を 含 む 一 覧 表 から 抽 出 し てくれる 関 数 です

(Microsoft Word - Excel\211\236\227p2\217\315.docx)

計算式の取り扱い

(Microsoft Word - Excel\211\236\227p7\217\315.docx)

年齢別人数計算ツールマニュアル

(Microsoft Word - \215u\213`\203m\201[\203g doc)

Word 003 スキルブック 06 - オブジェクトの 利 用 0.Word で 作 る 表 : 行 幅 を 最 小 値 より 小 さく 設 定 する 3 表 の 左 右 のサイズを 適 宜 調 整 します Word で 表 を 作 成 するとき, 列 幅, 行 幅 ともに 基 本 的 に 自 由

5 セル B9 に=B8+1と 入 力 半 角 入 力 です 以 下 同 様 セル B9 をクリックし=(イコール) 入 力 後 セル B8 をクリックしても B8と 入 力 出 来 ます 6 B9 をクリック カーソルをセルの 左 下 に 持 って 行 き+ 記 号 になった 状 態 で クリック

「1 所得税及び復興特別所得税の確定申告書データをお持ちの方」からの更正の請求書・修正申告書作成編

1

2016 年 度 情 報 リテラシー 三 科 目 合 計 の 算 出 関 数 を 用 いて 各 教 科 の 平 均 点 と 最 高 点 を 求 めることにする この2つの 計 算 は [ホーム]タブのコマ ンドにも 用 意 されているが 今 回 は 関 数 として 作 成 する まず 表 に 三 科

Microsoft Word - 教科書VBA_第1章2013_.doc

目 次 1. 論 理 関 数 IF IF の 概 要 論 理 式 の 種 類 等 号 不 等 号 具 体 的 な 使 い 方 ネスト 複 数 の 条 件 を 記 述...

文科省様式3-2集計オプションマニュアル

Microsoft Office Excel2007(NO.2エクセル初級後編)

_責)Wordトレ2-1章_斉

6 システムを 入 れているパソコンを 入 れ 替 えたいが どうしたらいいのか 元 のパソコンから 新 しいパソコンに 昨 年 度 入 力 データを 移 行 します 手 順 は 次 のとおりです 1 元 のパソコンでシステムを 起 動 して メニュー 画 面 から バックアップ リカバリ を 選

返還同意書作成支援 操作説明書

目 次 1.はじめに 書 式 の 説 明 表 紙 スケジュール 組 入 れ 基 準 併 用 禁 止 薬 併 用 注 意 薬 同 種 同 効 薬 医 師 モニタリング..

01_07_01 データのインポート_エクスポート_1

「給与・年金の方」からの確定申告書作成編

エクセルを 起 動 します [スタート]をクリックします [すべてのプログラム]をポイントします [Microsoft Office]を クリックします [Microsoft Office Excel 2007]をクリックします 1 [Office ボタン]をクリックして [ 開 く]を 選 択 し

入 札 参 加 資 格 申 請 システム 操 作 マニュアル 入 札 参 加 資 格 の 資 格 有 効 ( 変 更 ) 日 を 迎 えると 追 加 届 の 登 録 ができるようになります ( 入 札 参 加 資 格 申 請 の 定 時 受 付 では いずれかの 申 請 先 団 体 から 入 札 参

かんたんQR

Ⅰ 校 外 における 研 修 の 留 意 点 1 校 外 における 研 修 のコマ 数 の 考 え ア) 午 前 午 後 の 講 座 は 0.5 日 (0.5 コマ) イ) 全 日 の 講 座 は 1.0 日 (1.0 コマ) 2 校 外 における 研 修 として 選 択 できない 講 座 研 修

(Microsoft Word - Excel\223\374\226\3452\217\ docx)

治 験 実 施 管 理 システム NMGCP 向 け Excel 形 式 プロトコール 作 成 手 順 書 V4.0.3 対 応 版 第 1 版 株 式 会 社 富 士 通 アドバンストエンジニアリング All Rights Reserved,Copyright 株 式 会 社 富 士 通 アドバン

医 療 費 自 己 負 担 額 支 払 明 細 書 入 力 シート - 目 次 - < 第 1 章 > 共 通 事 項 説 明 医 療 費 自 己 負 担 額 支 払 明 細 書 入 力 シート 目 次 1.1 本 システムの 注 意 点 入 力 項 目 について 基 本 情

TIPS - 棚 割 りを 開 始 するまで Liteを 起 動 し 企 業 情 報 の 追 加 を 行 い 棚 割 を 行 う 企 業 の 追 加 をして 下 さい 企 業 情 報 の 追 加 時 に エラーメッセージが 表 示 された 場 合 別 途 TIPS トラブルが 発 生 した 場 合

<91808DEC837D836A B5F8F488E528A6D E786C7378>

目 次 1. 積 算 内 訳 書 に 関 する 留 意 事 項 1 ページ 2. 積 算 内 訳 書 のダウンロード 3 ページ 3. 積 算 内 訳 書 の 作 成 (Excel 2003の 場 合 ) 6 ページ 4. 積 算 内 訳 書 の 作 成 (Excel 2007の 場 合 ) 13

Microsoft PowerPoint - KeySQL50_10g_vlo3.ppt

Microsoft Word - WBT(PP応用編).docx

EXCELが 起 動 し 下 図 のような 画 面 になります セル 番 号 のF2からJ1897を 選 択 します 最 初 にF2のところにカーソルをもっていき 左 クリックしたまま マウスを 右 に 動 かし Jのところまでいきます クリックしたまま マウスを 下 に 動 かします J1897(

1. アクセスする 2. 簡 易 検 索 画 面 (fig. 1) アクセスすると 最 初 に 出 る 画 面 です 検 索 語 入 力 ボックスにキーワードを 入 力 して 論 文 検 索 ボタンをクリックし ます 3. ボックス 下 部 のチェック 項

Microsoft Word - word_05.docx

目 次 目 次 1 ログイン ログアウト ログインする...1 ログイン 画 面 が 表 示 されないときは?... 1 初 めてログインするときのパスワードは?... 2 初 期 パスワードを 忘 れてしまったときは?... 2 変 更 したパスワードを 忘 れてしまったときは?.

CSI情報管理システム

事前チェック提出用現況報告書作成ツール入力マニュアル(法人用)

ことばを覚える

医療費控除の入力編

t検定

研究者情報データベース

購買ポータルサイトyOASIS簡易説明書 b

Microsoft Word - 22演習テキストWBT用.doc

KINGSOFT Office 2016 動 作 環 境 対 応 日 本 語 版 版 共 通 利 用 上 記 動 作 以 上 以 上 空 容 量 以 上 他 接 続 環 境 推 奨 必 要 2

以 下 に 手 順 の 流 れを 記 載 します 3ページ 以 降 で 各 項 目 の 手 順 を 説 明 します ( をクリックすると 該 当 ページにジャンプします ) また 4ページに 汎 用 データ 受 入 に 関 するよくあるお 問 い 合 わせをご 紹 介 しています Step (3ペー

2 課 題 管 理 ( 科 学 研 究 費 補 助 金 ) 画 面 が 表 示 されます 補 助 事 業 期 間 終 了 後 欄 の[ 入 力 ] をクリックします [ 入 力 ]ボタンが 表 示 されていない 場 合 には 所 属 する 研 究 機 関 の 事 務 局 等 へお 問 い 合 わせく

<4D F736F F D F B B838082F090DD927582B782E995FB96405F E646F6378>

名刺作成講習

1級 ワンポイント

ワープロソフトウェア

■新聞記事

untitled

ボタンをクリックします ( 警 告 が 表 示 されない 場 合 もあります ) 9 画 面 に Win SFX32M V と 表 示 されますので 保 存 する 箇 所 を 選 択 し OK をクリックしてください 選 択 した 箇 所 にインストールしたフォルダが 保 存 され

Ⅰ. 各 種 文 書 作 成 メニュー 項 目 説 明 各 種 文 書 作 成 メニューでは 共 通 で 使 える 便 利 な 機 能 がございます テンプレート 機 能 引 用 文 を 貼 り 付 けることができます 複 写 (コピー) 機 能 作 成 した 帳 票 をコピー 編 集 することがで

< F2D93648E718E868EC58B8F30332E6A7464>

Microsoft Word - P doc

Microsݯft Word - 91 forܠ2009November.docx

ワープロソフトウェア

範 囲 選 択 次 の 基 本 操 作 を 確 認 してください 範 囲 選 択 について シートを 上 下 にスクロールしてください また 左 右 にスクロールしてください 上 下 左 右 のスクロールボタン をクリックする または スクロールバーをドラッグする マウスの ホイール を 動 かす

untitled

Microsoft Word - 203MSWord2013

DN6(R04).vin

関数の構造

Microsoft Word - tb01.doc

情報処理技能検定試験 表計算2級 手順書

目 次 遺 失 物 管 理 プログラム 利 用 者 マニュアル 1. 動 作 条 件 遺 失 物 管 理 プログラムのインストール 運 用 の 流 れ 起 動 方 法 操 作 方 法 について 基 本 的 な 操

5 振 込 依 頼 書 の 作 成 方 法 ()ツールの 起 動 コピーまたはダウンロードしたツールをダブルクリックして 開 いてください (ツール 起 動 の 際 マクロを 有 効 にしてください ) ダブルクリック 後 以 下 のメッセージが 出 力 されますので 読 み 取 り 専 用 ボタン

3 3 定 期 考 査 の 達 成 率 (F 列 )を 計 算 します 達 成 率 は 中 間 考 査 (D 列 )と 期 末 考 査 (E 列 ) の 点 数 の 合 計 を 中 間 考 査 と 期 末 考 査 の 最 高 点 の 合 計 で 割 っても とめます F11 のセルをクリッ クし =

MetaMoJi ClassRoom/ゼミナール 授業実施ガイド

2 科 学 研 究 費 助 成 事 業 のトップページ 画 面 が 表 示 されます [ 研 究 者 ログイン]をクリック します 掲 載 している 画 面 は 例 示 です 随 時 変 更 されます 3 科 研 費 電 子 申 請 システムの 応 募 者 ログイン 画 面 が 表 示 されます e

<4D F736F F D20819C486F70658F6F93588ED297708AC7979D89E696CA837D836A B E A2E646F63>


目 次 1.はじめに 1-1. はじめに 2. 操 作 2-1. 概 要 2-2. 操 作 方 法 ( 調 査 依 頼 の 確 認 ) 2-3. 操 作 方 法 ( 回 答 登 録 ) 2-4. 操 作 方 法 (ワークシート 出 力 ) 2-5. 操 作 方 法 (ワークシート 取 込 ) 3.

情報処理実習(工基3)

Microsoft Word - 操作マニュアル(石油コンビナート_オフラインソフト編)_v0.2.doc

もくじ 0.はじめに 1 1. 用 紙 をスキャナで 用 紙 を 読 み 込 む 1 2. 書 式 定 義 マークした 部 分 を 個 々のデータとして 取 り 込 む 場 合 ( 複 数 回 答 対 応 ) マークした 部 分 をグループ 化 して 取 り 込 む 場 合

PowerPoint プレゼンテーション

<4D F736F F D208CA990CF96BE8DD78F918EAE82CC95CF8D >

<4D F736F F D C97F195CF8AB DEC90E096BE8F912091E6312E313294C52E646F63>

(3) 小 単 元 の 指 導 と 評 価 の 計 画 小 単 元 第 11 章 税 のあらまし の 指 導 と 評 価 の 計 画 ( 四 次 確 定 申 告 制 度 抜 粋 ) 関 心 意 欲 態 度 思 考 判 断 技 能 表 現 知 識 理 解 小 単 元 の 評 価 規 準 税 に 関 す

賞 状 を 作 ってみよう 1- 賞 状 フォルダを 使 用 賞 状 のテンプレートから ワードで 賞 状 の 文 章 を 作 成 します あらかじめ EXCEL で 作 成 した 受 賞 者 の 名 簿 から 学 年 クラス 名 前 を 入 れて 印 刷 します 1Excel の 賞 状 名 簿.

病 棟 担 当 者 の 操 作 I. 毎 月 の 病 棟 年 月 ファイルの 作 成 起 動 用 ファイル を 開 き 年 月 と 病 棟 を 指 定 して[ 病 棟 年 月 ファイルを 開 く]ボタンを 押 す か 病 棟 セルをダブルクリックすることで 対 象 の 年 月 ファイルが 開 く 該

縦 計 横 計 をSUM 関 数 で 一 度 に 計 算 する 縦 横 の 合 計 を 表 示 するセルが 計 算 対 象 となる セルと 隣 接 している 場 合 は 一 度 に 合 計 を 求 め ることができます 1 計 算 対 象 となるセル 範 囲 と 合 計 を 表 示 する セル 範

4. 発 注 者 コード 及 び 成 績 評 定 8 (Q4-1) 該 当 の 発 注 者 コードが 付 与 されていないので 追 加 してください... 8 (Q4-2) 発 注 者 コードが 不 正 確 空 白 のものがあり 点 数 を 入 力 できません 成 績 評 定 の 入 力 ができませ

EXCELレッスン 2

富士山チェックリスト

4 応 募 者 向 けメニュー 画 面 が 表 示 されます 応 募 者 向 けメニュー 画 面 で [ 交 付 内 定 時 の 手 続 を 行 う] [ 交 付 決 定 後 の 手 続 を 行 う]をクリックします 10

Basic

日 付 部 分 を 入 力 する 今 回 は 3 月 のカレンダーを 作 ります 3 月 は 水 曜 日 からはじまりますので 1 水 曜 日 第 1 週 目 にあたるセル D2 に 1 その 隣 の E2 に 2 と 入 力 しましょう と 入 力 したセル D2:E2 をドラッグして

スライド 1

2016 年 度 情 報 リテラシー 変 更 された 状 態 同 様 に 価 格 のセルを 書 式 設 定 する 場 合 は 金 額 のセルをすべて 選 択 し [ 書 式 ]のプルダウンメニューか ら[ 会 計 ]を 選 択 する すると が 追 加 され 金 額 としての 書 式 が 設 定 さ

d_cj01

目 次 1.ログイン 方 法 P2 2.ログアウト 方 法 P3 3. 基 本 設 定 変 更 サイトネーム スローガンの 設 定 P10~11 カラーバリエーションの 選 択 P12 メニュースタイル 色 の 設 定 P12 4.トップページの 画 像 編 集 画 像 の 変 更 P13~14 T

Microsoft Word - 2.doc

スライドの 編 集 とリンク スライドのレイアウトやデザインが 決 まったら 文 字 の 編 集 をしたり スライドの 順 序 変 更 やリンク 設 定 をして 見 栄 えの 良 いプレゼンテーションを 作 成 しましょう ファイル MP05 完 成.ppt を 開 き 内 容 を 編 集 していき

Transcription:

エクセルの マクロ 言 語 (VBA)に 慣 れるためのメモ 2014/1/31~ ~2015/12/31 作 成 : 縁 木 精 史

エクセル マクロ 言 語 とは エクセルのマクロとは 手 番 をあらかじめ 記 述 しておくことにより 通 常 手 操 作 している 処 理 を 自 動 化 すること 自 動 化 したものです マクロで 手 番 を 記 録 すれば 繰 り 返 し 作 業 を 自 動 化 できます また 連 続 的 な 集 計 作 業 の フローを 明 示 化 でき 作 業 条 件 が 変 わらなければ マクロはそのまま 継 続 使 用 できます マクロは コードを 直 接 入 力 する 方 法 と 操 作 が 自 動 的 にコード 変 換 されたキー 記 録 の2つの 方 法 があります 簡 単 なコードは 覚 えましょう 複 雑 なコードになるばあいはキー 記 録 で 作 成 されるコードを 利 用 しましょう ただ キー 記 録 で 作 成 されるコードの 意 味 がほぼ 分 かる 程 度 までは コード 言 語 レベルの 知 識 を 持 つことが 大 切 かと 思 います マクロ 言 語 とは? http://excelvba.pc-users.net/index.html http://www.eurus.dti.ne.jp/~yoneyama/excel/exl-_zen.htm#vba_jitu http://excelvba.pc-users.net/ VBA 画 面 の 説 明 http://www.eurus.dti.ne.jp/~yoneyama/excel/vba/vba_vbe.html ExcelVBAの 使 い 方 http://homepage2.nifty.com/nandemoarchive/cyou_nyumon/excel_01.htm

VBA for Excelの 特 徴 ( 他 のスクリフ ト 言 語 に 比 べ) コード( 構 文 )の 次 群 が 自 動 表 示 され また 実 行 エラー 箇 所 を 示 してくれます ネット 上 に 山 と 言 うほどの 説 明 があるし 回 答 者 が 多 くいます 注 1) 英 語 語 句 の 読 み 方 は http://vbae.odyssey-com.co.jp/study/glossary.html を 参 照 注 2)マクロとは プログラミング 言 語 その 一 つに Visual Basic for Applications ( 略 してVBA)があり EXCEL 用 のVBA WORD 用 のVBA powerpoint 用 のVBAがあります 注 3)まずは VBAが 何 であるかを 理 解 する 前 に 実 際 に 作 成 し 実 行 し その 結 果 を 見 て 経 験 する 馴 染 む 慣 れる ことが 理 解 への 近 道 注 4) 変 数 とは? マクロ 内 で 使 用 する セル みたいなものです ただ セルのように 何 でも 入 るわけではありません 入 れるものが 数 値 文 字 範 囲 シート 名 などであれば それぞれに 変 数 の 定 義 をする 必 要 があります 変 数 は 値 の 入 れ 物 ですが その 処 理 やブックを 終 了 すると 消 えます 定 義 dim i as long iを 数 値 型 (long)として 定 義 します 文 字 を 入 れるなら dim i as string とします ただ 慣 習 があり I,j,kなどは 数 値 を 入 れる 変 数 とされています ちょっと 不 便 なセルが 変 数 ということでしょうか? 成 り 立 ちとしては 変 数 から セルが 考 えられたのでしょうけど [ 参 考 ] わずかな 知 識 でVBA! http://koikide.net/hensuu.html

マクロ 言 語 の 基 本 文 1セル シート ブックの 表 現 A1と 言 っても 同 じ 画 面 を 見 ている 人 同 士 は それで 通 じるが コードを 記 述 する 場 合 は そ セルA1 range( a1 ) range: 読 み 方 :レンジ のような 前 提 は 通 じないので どのブックの シート1 sheets("sheet1") どのシートの A1かを 指 定 しないといけない abcブック workbooks("abc.xlsx") マクロが 保 存 されているブック Thisworkbook アクティブになっているブック Activeworkbook : キーボード マウスが 対 象 とするブック 2セルに 値 を 代 入 する ( 右 から 左 に 代 入 ) セルA1に10を 代 入 する range("a1")=10 sheet2のシートのb1に 住 所 を 代 入 する sheets( sheet2 ).range( b1 )= 住 所 マクロでは シートを 切 り 替 える 必 要 はない セルA1の 値 をセルA10に 代 入 する range( a10 )=range( a1 ) 又 は range("a10")=range("a1").value セルA1にSUM 関 数 を 代 入 する range("a1")="=sum(b1:b10)" セルA1からセルA100を 選 択 する range( a1:a100 ).select セルA1からA100までのすべてのセルに 5を 入 力 する Range("a1:a100") = 5 もし abc.xlsxのシート1がアクティブで セルA1に100を 代 入 するなら range("a1")=100 で 良 いが sheet2がアクティブである 場 合 に sheet1のa1に100を 入 れるなら sheets( sheet1 ).range( a1 )=100 とします 2つのブックをオープンしている 場 合 なら workbooks("abc.xlsx").sheets("sheet1").range("a1")=100 としないと どのブックに 代 入 するのか 不 明 確 となり 意 に 反 する 動 きとなります シートやブックを 明 示 的 に 指 定 しない 場 合 予 期 せ ぬ 処 理 結 果 がシートに 出 力 される 可 能 性 があるの で 注 意 すること!

マクロ 言 語 の 基 本 文 3 変 数 を 使 う( 処 理 上 仮 に 値 を 入 れるもの) まず 使 うだろう 変 数 を 定 義 します dim i as long 変 数 iは 慣 習 longは 数 値 型 文 字 を 入 れる 変 数 なら stringとします i=range( a1 ) A1の 値 は 数 値 であること でないと エラーとなります range("b1")=i range("b2")=i 4コピー&ペースト range( a1:a100 ).copy range( h2 ) a1からa100のセル 範 囲 をコピーし h2に 張 り 付 けます dim 範 囲 as range セル 範 囲 として 範 囲 と 言 う 語 を 変 数 定 義 set 範 囲 =range( a1:a1000 ) セル 範 囲 を 範 囲 に 代 入 する (range 型 のみsetを 使 う )) 範 囲.copy range( h1 ) 範 囲 をコピーして H1セルに 貼 り 付 けます

基 本 処 理 (1) 繰 り 返 し 処 理 1for~next セルA1からA100までに 1,2,3と 連 番 を 入 力 する 場 合 dim i as long for i=1 to 100 range("a" & i)=i next nextは next i と 変 数 を 付 けてもOKです for~nextのなかに for~nextがあるような 入 れ 子 構 造 をネストすると 言 うそうですが そのような 場 合 nextがどの 変 数 のものかなどを 明 示 するために nextの 後 ろに 変 数 を 付 けたほうが 良 いと 思 われますが そもそも 的 にはネストした 構 文 は 使 わないことを お 勧 めします セルA10から 上 方 向 に 10をカウントダウンした 数 値 を 代 入 します dim i as long for i=10 to 1 step -1 range("a" & i)=10-i next 2do While ~ loop while: : 読 み 方 :ホワイル セルのA1~A10に1~10を 入 力 する 場 合 i = 1 Do While i < 11 Worksheets("Sheet1").range("a" & i).value = i i = i + 1 for~nextの 場 合 は 自 動 で 変 数 iはカウントアッフ しますが do~loopの 場 合 はしません Loop

基 本 処 理 (2) 条 件 文 if~end if 条 件 文 1A1セルが10だったら A1セル 値 を2 倍 にした 数 値 をB1セルに 代 入 する 場 合 if range("a1")=10 then range("b1")=range("a1")*2 2A1セルが5だったら B1セルにA1セル 値 を 代 入 する 場 合 if range("a1")=5 then range("b1")=range("a1").value end if 3A1セルが5 以 上 だったら A1セルに10を 加 算 した 値 をB1セルに 代 入 し そうでなかったら A1セルに10をマイナスした 値 をB1セルに 代 入 する 場 合 if range("a1")>=5 then range("b1")=range("a1")+10 Else range("b1")=range("a1")-10 end if

基 本 処 理 (3)for~nextの 繰 り 返 し 文 とif 文 を 組 み 合 わせる 1A1から からA100で 値 が だったら B 列 に を 代 入 する dim i as long for i=1 to 100 if range("a" & i)=" " then range("b" & i)=" " next 2A1から からA100で で A 列 が で かつB 列 が だったら C 列 に を 代 入 する dim i as long for i=1 to 100 if range("a" & i)=" " and range("b" & i)=" " then range("c" & i)=" " next (4)マクロ 言 語 の 中 でワークシート 関 数 を 使 うには セルA6からa4400,000までの 可 視 セル(フィルター 実 行 した 結 果 )の 数 をカウントし A1セルに 代 入 する range("a1") = Application.WorksheetFunction.Subtotal(3, Range("a6:a400000")) もし A1セルに 関 数 式 を 代 入 するなら Range("a1") = "=Subtotal(3, a6:a400000)" とする たとえば マクロからシートに 関 数 式 を 代 入 し その 結 果 をまたマクロで 利 用 することも 可 能 B1セルに A1セル 値 を 参 照 するvlookup 関 数 があったとして range("a1")=10 msgbox range("b1") この 場 合 のiには vlookup 関 数 の 結 果 の 値 が 入 る 計 算 が 複 雑 であれば 結 果 が 出 る 時 間 とマクロが 動 作 する 時 間 差 が 生 まれて 変 数 iに 何 も 入 らないかもしれないが 30 万 件 のvlookupでも 一 瞬 に 計 算 される おそらく 通 常 のオフィスでの 計 算 では 時 間 が 掛 かり 過 ぎるという 計 算 はないと 思 われる あるとすれば 計 算 ではなく シート 選 択 やシート 上 の 値 の 分 類 フィルター ピボットや ブック 選 択 などの 処 理 だと 思 われます

基 本 処 理 (5)キー 記 録 を 参 考 にしてコードを 作 る (キー 記 録 のアレンジ) 例 : L6~L13を 選 択 し コピーし N6をクリックし 行 列 を 入 れ 替 えて 貼 り 付 ける 処 理 を キー 記 録 したら Range("L6:L13").Select Selection.Copy Range("N6").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True Range("L6").Select Application.CutCopyMode = False 操 作 を 忠 実 に 記 録 しているが 無 駄 も 多 い マクロ 言 語 では いちいちセルをクリックする 必 要 がないので Range("L6:L13").copy でコピーが 完 了 する copyの 次 にセルを 指 定 すると 貼 付 となるので Range("L6:L13").copy Range("N6").PasteSpecial Paste:=xlPasteAll, Transpose:=True Range("l6").Select Application.CutCopyMode = False とすることができる

基 本 処 理 (6)データの 最 終 行 を 知 る マクロでデータを 集 計 する 場 合 に どの 行 に 対 して 行 うのかを 知 る 必 要 が 出 てきます お 約 束 のコードは [ 参 考 ] http://officetanaka.net/excel/vba/tips/tips130.htm Cells(Rows.Count, 1).End(xlUp).Select cells: 読 み 方 :セルズ 意 味 :A 列 のシート 最 終 行 からCTRL+ キーで 最 初 に 値 が 見 つかったセルを 選 択 する A 列 の 最 終 行 番 号 なら Cells(Rows.Count, 1).End(xlUp).row cells( 行 列 )の 表 記 となり range( 列 行 )とは 反 対 となる range( 列 行 )は A1,B1と 分 かり 易 いが cells( 行 列 )となっているが 列 についても 変 数 が 使 える 利 点 があります cells(1,1)は range("a1")と 同 じ Cells(Rows.Count, 1).End(xlUp).row +1 とすれば A 列 の 最 終 行 の 次 の 行 となり 追 加 すべき 行 となる

基 本 処 理 (7)ファイル 選 択 画 面 を 表 示 し 選 択 したエクセルブックを 開 く 1 [ 参 考 ]http://officetanaka.net/other/extra/tips15.htm Sub Book_open() Dim Atai As Variant, afile As Variant, ws As Variant, wb As Variant, flag As Variant Dim F_name As String Dim i As Long, j As Long Atai = MsgBox("ブックを 開 く" & vbcrlf & _ "オープンするブックを 選 択 して 下 さい ", vbokcancel, "ブックの 選 択 ") If Atai = vbcancel Then Exit Sub ' ファイルを 取 得 する 為 に 指 定 した 拡 張 子 のみ 表 示 したエクスプローラを 起 動 する afile = Application.GetOpenFilename("xlsファイル (*.xls?),*.xls?",, "ブックを 選 択 して 下 さい", "OK", False) If afile <> False Then j = Len(aFile) For i = j - 1 To 1 Step -1 ' 左 から 最 初 に 見 つかる で 文 字 列 を 区 切 る If Mid(aFile, i, 1) = " " Then F_name = Mid(aFile, i + 1, j) 'ブック Exit For End If Next Else Exit Sub End If ' 選 択 したxlsのパスとファイル 名 を 変 数 に 代 入 ' MsgBox afile ' パス 付 ファイル 名 ' MsgBox Mid(aFile, 1, i) 'パス 名 ' MsgBox F_name 'ファイル 名 ' 同 名 のブックがあれば flag=trueとする 既 に 開 いているなら 処 理 中 止 する For Each wb In Workbooks If wb.name = F_name Then flag = True Exit For End If Next wb If flag = True Then Atai = MsgBox(F_name & "は 開 いています" & vbcrlf & " 処 理 を 開 始 する 前 に 閉 じてください " & vbcrlf & _ "オープンしているブックをアクティブにするなら OKをクリックしてください ", vbokcancel) If Atai = vbcancel Then Exit Sub Workbooks(F_name).Activate Exit Sub End If Workbooks.Open Filename:=aFile End Sub

基 本 処 理 (7)ファイル 選 択 画 面 を 表 示 し 選 択 したエクセルブックを 開 く 2 [ 参 考 ]http://officetanaka.net/other/extra/tips15.htm Sub ブック 選 択 open() 'ブックを 複 数 選 択 して オープンする ' 既 にopenしている 場 合 は openしない Dim OpenFileName As Variant, Target, Wb As Variant Dim I As Long, j As Long Dim Filename Application.ScreenUpdating = False OpenFileName = Application.GetOpenFilename(FileFilter:="Microsoft Excelブック,*.xls?", MultiSelect:=True) i = 5 If IsArray(OpenFileName) Then For Each Target In OpenFileName j = 0 For Each Wb In Workbooks If Wb.Name = Dir(Target) Then j = 1 MsgBox " 既 に" & Wb.Name & " はopenしています " End If Next If j = 0 Then Workbooks.Open Target i = i + 1 Next Target Else ' MsgBox "ブック 選 択 は キャンセルされました" End If ThisWorkbook.Activate: Sheets("ブック 一 覧 ").Activate End Sub

基 本 処 理 (8) 図 形 (ボタン)とマクロ(モジュール)との 関 連 付 け ボタンは 図 形 から 選 んで シート 上 に 作 成 します ボタンを 右 クリックして マクロの 登 録 を 選 択 既 に モジュールを 作 成 していれば モジュール 名 =マクロ 名 が 表 示 されているので それを 選 択 して OKボタンクリックで 関 連 付 け 完 了 となります これで ボタンをクリックすると マクロが 実 行 されます この 関 連 付 けは オブジェクトであればできるので テキストボックスにも グラフにもマクロとの 関 連 付 けを 行 えます コントロールのコマンドボタンを 使 っても 当 然 に 関 連 付 けることが できます フォームのコマンドボタンだと サイズを 確 定 した 後 に マクロの 登 録 フォームが 開 きます (9) 処 理 途 中 にメッセージを 表 示 させる マクロが 勝 手 に 処 理 を 行 い いつ 終 了 したのかわからないので メッセージを 表 示 させることができます msgbox " 処 理 が 終 了 しました " Atai=msgbox(" 次 の 操 作 に 移 りますか?",vbokcancel,"title") if atai=vbok then msgbox yes selected

業 務 作 業 に 適 用 する (1) 業 務 フローを 想 像 してみる 例 : 各 部 署 に 指 定 のエクセルブック( 書 式 統 一 )を 配 付 回 収 し その 個 々のブックの 集 計 を 半 自 動 化 する 1 前 提 条 件 配 付 のエクセルブックは 以 下 のとおりとする C11~c15までを 回 答 欄 とする シートは1 枚 のみのブックとする シート 名 はsheet1とする C10は 氏 名 とし 氏 名 がない 場 合 は 確 認 後 氏 名 をハンド 入 力 する 2 処 理 イメージ 自 動 で 行 う 事 は ファイルを 手 作 業 で 指 定 し 開 いたら 自 動 で 集 計 ブックに 転 記 し そのブックを 閉 じる 3 作 っていく 新 規 ブックを" 集 計 "の 名 前 で 保 管 集 計 ブックのVBEを 開 いて 挿 入 ~ 標 準 モジュール モジュール 画 面 にコードを 入 力 していく sub マクロ 名 ( 自 由 の 名 前 を)() ' ()はお 約 束 ' 処 理 を 書 いていく が 行 の 先 頭 にある 行 は 注 釈 となり 処 理 では 無 視 される end sub 今 回 は 集 計 というマクロ 名 にする まず 行 いたいことを 注 釈 で 書 く その 注 釈 をコードに 直 していく

業 務 作 業 に 適 用 する (2) 業 務 に 応 用 してみる ~ 注 釈 書 き その 後 コード 化 する 4 処 理 を 注 釈 ( 言 葉 )で 書 いてみる ファイル 選 択 画 面 を 表 示 する (ファイル 選 択 画 面 は 特 定 のフォルダーを 指 定 したい ) ファイル 選 択 画 面 で 対 象 ファイルを 見 つけ 選 択 する 何 も 選 択 しない 場 合 もある 選 択 したファイルを 開 く サーバーからのファイルを 開 くのに 時 間 が 掛 かるかもしれない 貼 付 け 先 の 最 終 行 の 次 行 を 知 る 開 いたブック シートの 対 象 セル 範 囲 をコピーする このブック シートの 最 終 行 の 次 行 に 貼 り 付 ける クリップボードをクリアする 開 いたブックを 閉 じる

業 務 作 業 に 適 用 する 5 実 際 のコード Sub 集 計 () ' 回 答 表 を 選 択 して 開 く Dim Openfilename as string With CreateObject("WScript.Shell").CurrentDirectory = 総 務 部 01_ 作 業 End With '' 貼 付 け 先 の 行 を 調 べる Dim i As Long i = ThisWorkbook.Sheets( sheet1 ).Cells(Rows.Count, 1).End(xlUp).Row + 1 貼 り 付 け 先 はこのマクロがあるブックのシート1のA 列 Openfilename = Application.GetOpenFilename( Microsoft Excelブック,*.xls? ) 開 きたいファイル 名 をフルパスで 取 得 フルパス 付 ファイル 名 = Openfilename If Openfilename <> "False" Then ' 選 択 内 容 が 空 でなかったら Workbooks.Open Openfilename ' 選 択 したファイルを 開 く Else exit sub End If MsgBox dir(openfilename) & を 転 記 します ' 回 答 表 のC11~C15までをコピーし 集 計 ブック(このブック)の5 行 目 から 貼 り 付 けていく '' オープンしたら そのブックがアクティブになっている! ActiveWorkbook.Sheets("sheet1").Range("c11:c15").Copy コピーしたセル 範 囲 を 行 列 入 れ 替 えて このシートの( 最 終 行 +1) 行 に 貼 り 付 ける ThisWorkbook.Sheets("sheet1").Range("a" & i).pastespecial Paste:=xlPasteAll, Transpose:=True コピーモードを 解 除 する Application.CutCopyMode = False ' 貼 付 けが 完 了 したら 回 答 表 は 閉 じる ActiveWorkbook.Close ' 適 時 処 理 が 終 わる 都 度 メッセージを 表 示 する MsgBox " 処 理 が 完 了 しました End sub

機 能 を 追 加 する 集 計 というマクロ(プロシージャ)が 完 成 したら 更 に 使 い 易 くするために 機 能 追 加 を 考 えてみます だた この 段 階 では 機 能 の 為 の 機 能 を 考 えてしまうことがよくあります ハンドで 簡 単 にできるのであれば マクロを 作 成 する 必 要 はありません マクロを 本 当 に 作 成 するべきかどうか 自 問 することが 大 切 かと 思 います [Q.] 1 自 らの 作 業 効 率 と 間 違 い 防 止 の 為 なのか 2 他 の 人 に 使 ってもらう 為 に 作 成 するのか 3マクロの 勉 強 の 為 に 作 成 するのか 充 分 に 検 討 考 えるべき [A.] 1 作 業 効 率 よりも 間 違 い 誤 操 作 の 防 止 に 重 点 をおいて 考 え 作 成 するべきでしょう 2 他 の 人 の 力 量 レベルはそのままか 力 量 レベルを 上 げるのか 2つの 方 法 がある 3あまり 好 ましいとは 言 えない 更 に 欲 しい 機 能 は? 転 記 したファイルは 転 記 済 みとして 記 録 チェックし 2 重 の 転 記 を 防 ぐ

注 釈 の 重 要 性 コードを 書 いて 正 常 に 実 行 すれば 終 わりではありません その 処 理 が 何 をしているのか 同 時 に 決 めた 変 数 が 何 を 表 すのか 条 件 分 岐 はなぜしないといけないのか などなど 出 来 るだけ 詳 細 に 注 釈 を 入 れてください 作 成 中 や 作 成 直 後 は その 処 理 がイメージされているが 時 間 と 共 にその 記 憶 は 薄 れます 1 年 後 に 不 具 合 や 機 能 追 加 機 能 修 正 が 発 生 した 場 合 に 自 ら 作 成 したとはいえ マクロの 処 理 イメージを 忘 れていることが 多 々あります 一 からコードを 読 んで 理 解 する 手 間 を 省 くためにも 自 分 のために 注 釈 を 書 いておきましょう [ 例 ] Sub tesuto1() テストのマクロです セルに 連 続 したデータを 入 力 します 'ただし 5の 倍 数 の 場 合 は 値 を10 倍 します 'セルの 値 を 入 れる 変 数 を 定 義 します Dim i As Long 'セル1 行 から100 行 まで セル 毎 に 判 定 し 結 果 を 代 入 します For i = 1 To 100 'まずiには 1が 代 入 されます 'nextまで 行 ったら iに1が 加 算 されます Range("a" & i) = i ' a mod 5とは aを5で 割 った 時 の 余 りを 求 めます ' 5の 倍 数 とは 5で 割 ると 余 りがないので 余 り=0となります If (i Mod 5) = 0 And i > 1 Then Range("a" & i) = (i) * 10 Else '5の 倍 数 以 外 の 時 は 何 も 行 いません End If Next End Sub 注 釈 は コードの 実 行 とは 関 係 なく コードの 意 味 役 割 など コード 編 集 時 に 役 立 てます 注 釈 は 行 の 先 頭 に を 入 力 します この 以 降 の 行 の 語 句 は 注 釈 と 解 釈 されて 実 行 時 は 無 視 されます 1 行 ごとにつける 必 要 があり ます 注 釈 の 始 まり 注 釈 の 終 わりという 記 号 は あ りません

簡 単 な 練 習 (マクロを 作 ってみましょう ) (1)A1からA20までに 連 番 を 入 力 してみる 開 発 タブ~VisualBasicを 選 択 し 挿 入 ~ 標 準 モジュールを 選 択 白 い 入 力 スペースが 表 示 されるので 下 記 のように 入 力 します sub tesuto1() Dim i as long for i=1 to 20 range( a & i)=i next end sub シートとVisualBasicの 編 集 画 面 (VBE)を 併 置 すると 分 かり 易 い エクセルのシートをアクティブにして VBE 画 面 も 見 えるようにウインドウ 調 整 して ツールバーにある ボタン( 実 行 ボタン)をクリックし シート 上 のA1からA20セルに 1からの 連 番 が 入 力 されたことを 確 認 します このコードをシートを 切 り 替 えて 実 行 してみましょう やはり 同 じ 結 果 になります つまり このコードはアクティブシートに 対 して 行 われるコードです アクティブシートが 予 期 していな いシートであった 場 合 既 に 入 力 されている 値 を 書 き 換 えます マクロでの 変 更 は ctrl+zの 元 に 戻 すが 効 きません

簡 単 な 練 習 (マクロを 作 ってみましょう ) (2) 先 ほどのコードで 対 象 シートをsheet1に 限 定 してみます sub tesuto1() Dim i as long sheets( sheet1 ).activate <----- sheet1シートをアクティブにします for i=1 to 20 range( a & i)=i next end sub (3)アクティブシートに 関 係 なく sheet1シートにマクロが 実 行 するようにします sub tesuto2() Dim i as long sheets( sheet2 ).activate sheet2シートがアクティブになります with sheets( sheet1 ) ですが 連 番 は sheet1に 入 力 されます for i=1 to 20.range( a & i)=i. は sheets( sheet1 ).range( a & i)の 省 略 next end with with~end Withはworkbooks worksheets range などの 省 略 する 場 合 に 使 用 すると 便 利 です end sub

簡 単 な 練 習 (マクロを 作 ってみましょう ) (4) (3)のコードでは 処 理 が 終 了 しても 分 かりません 処 理 が 終 了 したら メッセー ジを 表 示 するように 変 更 してみます sub tesuto2() Dim i as long sheets( sheet2 ).activate with sheets( sheet1 ) for i=1 to 20.range( a & i)=i next end with msgbox end sub 処 理 が 終 了 しました,, "end" (5) 処 理 前 に メッセージを 表 示 し 処 理 確 認 を 行 うようにしてみます sub tesuto2() Dim i as long Dim atai as variant atai=msgbox( 開 始 します か,vbokcancel, 開 始 ) if atai=vbcancel then exit sub sheets( sheet2 ).activate with sheets( sheet1 ) for i=1 to 20.range( a & i)=i next end with msgbox 処 理 が 終 了 しました,, "end" end sub