• 検索結果がありません。

マクロで Excel 業務を 80% 削減する 構文一覧

N/A
N/A
Protected

Academic year: 2022

シェア "マクロで Excel 業務を 80% 削減する 構文一覧"

Copied!
23
0
0

読み込み中.... (全文を見る)

全文

(1)

マクロ

Excel 業務 80 削減する

構文一覧

(2)

構文一覧 目次

オブジェクト・プロパティ・メソッド ... 1

●マクロの作成 ... 1

マクロ(プロシージャー)を作成する <第 1 単位 P.25> ... 1

●ブックの操作 ... 1

ワークブックを指定する <第 1 単位 P.65> ... 1

●ワークシートの操作 ... 1

ワークシートを指定する <第 1 単位 P.66> ... 1

ワークシートを追加する <第 2 単位 P.21> ... 1

ワークシート名を変更する <第 2 単位 P.22> ... 1

ワークシートを削除する <第 2 単位 P.21,第 2 単位 P.25> ... 2

シート数を調べる <第 2 単位 P.32> ... 2

●セルの操作 ... 2

セル範囲を選択する <第 1 単位 P.55> ... 2

セルのフォントサイズを変更する <第 1 単位 P.108> ... 2

フォントを太字にする <第 1 単位 P.59> ... 2

セルに文字列を入力する <第 1 単位 P.115> ... 2

セルの背景色を設定する <第 1 単位 P.58> ... 3

セルをクリアする <第 1 単位 P.118> ... 3

別シートのセルにデータを入力する <第 1 単位 P.116> ... 3

基準となるセルの上下左右のセルを指定する <第 2 単位 P.43> ... 3

Cells プロパティでセルの指定をする <第 2 単位 P.22> ... 3

アクティブセル領域を選択する <第 1 単位 P.82> ... 3

終端セル <第 1 単位 P.83> ... 4

基点のセルから終端セルまでを選択する <第 1 単位 P.83> ... 4

セルの表示書式を設定する <第 2 単位 P.129> ... 4

オートフィルを実行する <第 2 単位 P.130> ... 4

●行・列の操作 ... 4

列の選択 <第 1 単位 P.84> ... 4

行の選択 <第 1 単位 P.84> ... 5

セル範囲の行数を取得する <第 2 単位 P.71> ... 5

セル範囲の列数を取得する <第 2 単位 P.71> ... 5

セルの列番号を取得する <第 2 単位 P.74> ... 5

セルの行番号を取得する <第 2 単位 P.74> ... 5

●罫線の操作 ... 5

罫線を引く <第 1 単位 P.80> ... 5

罫線を消す <第 1 単位 P.80> ... 5

格子の罫線を引く <第 1 単位 P.80> ... 5

(3)

●データの抽出操作(AutoFilter) ... 6

データの抽出 <第 1 単位 P.95> ... 6

●ハイパーリンクの操作 ... 6

ハイパーリンクを挿入する <第 2 単位 P.30> ... 6

ハイパーリンクの削除 <第 2 単位 P.30> ... 6

ハイパーリンクの表示文字列を取り出す <第 2 単位 P.43> ... 6

ハイパーリンクのアドレスを取り出す <第 2 単位 P.44> ... 6

●テーブルの操作 ... 7

テーブルの行数を調べる <第 2 単位 P.147> ... 7

テーブルの列数を調べる <第 2 単位 P.147> ... 7

テーブルの 1 行 1 列めの要素を指定する <第 2 単位 P.147> ... 7

テーブルの最終行に 1 行追加する <第 2 単位 P.154> ... 7

ピボットテーブルを更新する <第 2 単位 P.157> ... 7

●図形の操作 ... 7

図形を指定する <第 2 単位 P.52> ... 7

図形の種類を確認する <第 2 単位 P.55> ... 8

図形を削除する <第 2 単位 P.57> ... 8

グラフを作成する <第 2 単位 P.111> ... 8

図形(グラフ)の位置を指定する <第 2 単位 P.112,第 2 単位 P.117> ... 9

図形(グラフ)の大きさを指定する <第 2 単位 P.112,第 2 単位 P.117> ... 9

グラフのデータ範囲を指定する <第 2 単位 P.113,第 2 単位 P.118> ... 9

グラフタイトルを設定する <第 2 単位 P.113,第 2 単位 P.118> ... 9

凡例を表示する・非表示にする <第 2 単位 P.113,第 2 単位 P.119> ... 10

系列のデータラベルを表示する <第 2 単位 P.113,第 2 単位 P.119> ... 10

●印刷の操作 ... 10

印刷する <第 1 単位 P.94> ... 10

●別のマクロの呼び出し ... 11

別のマクロを呼び出す <第 1 単位 P.97> ... 11

●ファイル操作 ... 11

ファイルダイアログボックスを表示する <第 2 単位 P.82> ... 11

ファイル名やフォルダー名を取得する <第 2 単位 P.84> ... 11

ブックを開く <第 2 単位 P.96> ... 12

ブックを閉じる <第 2 単位 P.96> ... 12

PDF 形式で保存(エクスポート)する <第 2 単位 P.97> ... 12

実行中のマクロを含む Excel ファイルのパスを取得する <第 2 単位 P.99> ... 13

制御構文 ... 13

●条件分岐 ... 13

1 分岐 <第 1 単位 P.130 , 第 2 単位 P.53> ... 13

2 分岐 <第 1 単位 P.130> ... 13

3 分岐以上 <第 1 単位 P.130 , 第 2 単位 P.67> ... 13

●ループ(繰り返し) ... 14

回数を指定してループする For ~ Next <第 1 単位 P.132 , 第 2 単位 P.20> ... 14

(4)

条件が満たされている間ループする Do While~Loop <第 1 単位 P.133 第 2 単位 P.85> ... 14

コレクション内の各要素を順番にループする For Each~Next <第 1 単位 P.134,第 2 単位 P.54> .... 14

変数と演算子 ... 15

●変数 ... 15

変数を宣言する <第 1 単位 P.121,第 2 単位 P.12> ... 15

変数に値を代入する <第 1 単位 P.122,第 2 単位 P.12> ... 15

変数にオブジェクトを代入する <第 1 単位 P.122,第 2 単位 P.69> ... 16

●演算子 ... 16

四則演算 <第 1 単位 P.124> ... 16

文字列を連結する &演算子 <第 1 単位 P.125,第 2 単位 P.34> ... 16

VBA関数 ... 16

●文字列操作 ... 16

スペース(全角/半角)を削除する <第 2 単位 P.65,第 2 単位 P.72> ... 16

指定した文字列を定数で指定した方法で変換する <第 2 単位 P.65,第 2 単位 P.74> ... 17

文字列の一部を置換する <第 2 単位 P.66,第 2 単位 P.74> ... 17

指定した文字列の文字数を返す <第 2 単位 P.66,第 2 単位 P.75> ... 17

文字列の左端から指定した文字数分の文字列を返す <第 2 単位 P.66,第 2 単位 P.75> ... 17

文字列の右端から指定した文字数分の文字列を返す <第 2 単位 P.66,第 2 単位 P.75> ... 17

文字列の指定したスタート位置から指定した文字数分の文字列を返す <第 2 単位 P.66,第 2 単位 P.75> ... 17

●日付操作 ... 17

指定された 2 つの日付の差を計算する <第 2 単位 P.130> ... 17

指定した日付の曜日を調べる <第 2 単位 P.131> ... 18

指定した日付から「年」を取り出す <第 2 単位 P.131> ... 18

指定した日付から「月」を取り出す <第 2 単位 P.131> ... 18

指定した日付から「日」を取り出す <第 2 単位 P.132> ... 18

指定した日付に数字(単位)を加えた日付を調べる <第 2 単位 P.132> ... 18

その他 ... 18

●デバッグ ... 18

イミディエイトウィンドウに表示する <第 2 単位 P.101> ... 18

●アプリケーション ... 19

画面の更新を止める <第 2 単位 P.158> ... 19

画面の更新を再開する <第 2 単位 P.158> ... 19

(5)

オブジェクト・プロパティ・メソッド

●マクロの作成

マクロ(プロシージャー)を作成する <第 1 単位 P.25>

Sub マクロ名()

(VBA のコード)

End Sub

●ブックの操作

ワークブックを指定する <第 1 単位 P.65>

ActiveWorkbook 現在操作中のブック Workbooks("Book.xlsx") ワークブック「Book.xlsx」

※ブック名をダブルクォーテーションで囲んで指定します。

●ワークシートの操作

ワークシートを指定する <第 1 単位 P.66>

ActiveSheet

現在操作中のシートを指定する

Worksheets("名簿") / Sheets("名簿") ワークシート「名簿」

※シート名をダブルクォーテーションで囲んで指定します。

Worksheets(1) / Sheets(1) 左から 1 番めのシート

ワークシートを追加する <第 2 単位 P.21>

Sheets.Add After:=ActiveSheet / WorkSheets.Add After:=ActiveSheet 現在アクティブなシートの後にシートを追加する

ワークシート名を変更する <第 2 単位 P.22>

Sheets("Sheet2").Name = "塚本裕行"

「Sheet2」シートのシート名を「塚本裕行」に変更する Sheets(2).Name = "塚本裕行"

2 番めのシートの名前を「塚本裕行」に変更する

(6)

ワークシートを削除する <第 2 単位 P.21,第 2 単位 P.25>

Application.DisplayAlerts = False Sheets("塚本裕行").Delete

Application.DisplayAlerts = True

シートを削除する際、確認のダイアログボックスを表示せずに、シート「塚本裕行」を削除する Application.DisplayAlerts = False

Sheets(2).Delete

Application.DisplayAlerts = True

シートを削除する際、確認のダイアログボックスを表示せずに、2 番めのシートを削除する

シート数を調べる <第 2 単位 P.32>

Msgbox Sheets.Count

Msgbox にシートの数を表示する

※Sheets コレクションの代わりに、Worksheets コレクションを使用することができます。

●セルの操作

セル範囲を選択する <第 1 単位 P.55>

Range("A2").Select セル「A2」を選択する Range("A2:E2").Select セル範囲「A2:E2」を選択する Range("A2:E2,D4:E8,G5").Select

セル範囲「A2:E2」、セル範囲「D4:E8」、セル「G5」を選択する

セルのフォントサイズを変更する <第 1 単位 P.108>

Range("A1:D1").Font.Size = 20

セル「A1:D1」のフォントサイズを 20 ポイントに変更する

フォントを太字にする <第 1 単位 P.59>

Selection.Font.Bold = True

選択中のセルのフォントを太字にする Range("A2:E2").Font.Bold = True

セル範囲「A2:E2」のフォントを太字にする Range("A2:E2").Font.Bold = False

セル範囲「A2:E2」のフォントの太字の設定を解除する

セルに文字列を入力する <第 1 単位 P.115>

Range("A1").Value = "マクロ"

セル「A1」に文字列「マクロ」を入力する

※文字列を入力する場合は文字列をダブルクォーテーションで囲みます。

(7)

Range("B1").Value = 1200

セル「B1」に数値「1200」を入力する

※数値を入力する場合はダブルクォーテーションを省略できます。

Range("C1").Value = "2019/5/15"

セル「C1」に日付「2019/5/15」を入力する

※日付を入力する場合は日付をダブルクォーテーションで囲みます。

セルの背景色を設定する <第 1 単位 P.58>

Selection.Interior.Color = 255

選択中のセルの背景色を赤(色番号「255」)に設定する Range("A2:E2").Interior.Color = 10498160

セル範囲「A2:E2」の背景色を紫(色番号「10498160」)に設定する

セルをクリアする <第 1 単位 P.118>

Range("A1:C5").Clear セル「A1:C5」をクリアする

別シートのセルにデータを入力する <第 1 単位 P.116>

Worksheets("Sheet2").Range("A1").Value = "はじめての VBA"

シート「Sheet2」のセル「A1」に「はじめての VBA」と入力する

基準となるセルの上下左右のセルを指定する <第 2 単位 P.43>

基準となるセル.Offset(上下方向の数値(行), 左右方向の数値(列))

Range("A1").Offset(2,1).Select

基準となるセル「A1」から下方向に 2、右方向に 1 ずれたセルを選択する

※Offset で負の数を指定した場合は、指定した数だけ上方向や左方向にずれます。

Cells プロパティでセルの指定をする <第 2 単位 P.22>

Cells(行番号, 列番号).Select セルを選択する

Cells(1,2).Select

1 行め、2 列め(B 列)のセル「B1」を選択する Cells(1,"A").Select

1 行めの A 列のセル「A1」を選択する

アクティブセル領域を選択する <第 1 単位 P.82>

Selection.CurrentRegion.Select

現在選択中のセルを基点としたアクティブセル領域を選択する Range("A1").CurrentRegion.Select

セル「A1」を基点としたアクティブセル領域を選択する

(8)

終端セル <第 1 単位 P.83>

Range("A1").End(xlToRight)

セル「A1」から右方向に移動した終端セル Range("A1").End(xlDown)

セル「A1」から下方向に移動した終端セル

基点のセルから終端セルまでを選択する <第 1 単位 P.83>

Range(Range("A1"),Range("A1").End(xlToRight)).Select セル「A1」から右方向の終端セルまでを選択する

Range(Range("A2"),Range("A2").End(xlDown)).Select セル「A2」から下方向の終端セルまでを選択する

セルの表示書式を設定する <第 2 単位 P.129>

Range オブジェクト.NumberFormatLocal = "書式の式"

Range オブジェクトの表示形式を「書式の式」で指定した形式に変更する Range("A1").NumberFormatLocal = "m""月""d""日""(aaa)"

セル「A1」の表示形式を「4 月 1 日(月)」の形式に変更する

オートフィルを実行する <第 2 単位 P.130>

Range オブジェクト. AutoFill Destination:= オートフィル先のセル範囲 Range オブジェクトの値を Destination で指定したセル範囲に連続入力する

※引数「Destination」でセル範囲を指定する際には、もとのセルを含む形で設定します。

Range("B8").AutoFill Destination:=Range("B8:B10")

セル「B8」の値をセル範囲「B8:B10」にオートフィルで連続入力する

●行・列の操作

列の選択 <第 1 単位 P.84>

Columns("A").Select A 列を選択する Columns(1).Select 1 列め(A 列)を選択する Columns("A:C").Select A 列から C 列を選択する

Range(Columns(1),Columns(3)).Select 1 列め(A 列)から 3 列め(C 列)を選択する Range("A1:C1").EntireColumn.Select

1 列め(A 列)から 3 列め(C 列)を選択する

※「EntireColumn」キーワードを使うと、選択範囲内の列を簡単に指定することができます。

(9)

行の選択 <第 1 単位 P.84>

Rows(1).Select 1 行めを選択する Rows("1:3").Select

1 行めから 3 行めを選択する Range(Rows(1),Rows(3)).Select 1 行めから 3 行めを選択する Range("A1:A3").EntireRow.Select 1 行めから 3 行めを選択する

※「EntireRow」キーワードを使うと、選択範囲内の行を簡単に指定することができます。

セル範囲の行数を取得する <第 2 単位 P.71>

セル範囲.Rows.Count セル範囲の行数を求める

セル範囲の列数を取得する <第 2 単位 P.71>

セル範囲.Columns.Count セル範囲の列数を求める

セルの列番号を取得する <第 2 単位 P.74>

セル範囲.Column セルの列番号を求める

セルの行番号を取得する <第 2 単位 P.74>

セル範囲.Row

セルの行番号を求める

●罫線の操作

罫線を引く <第 1 単位 P.80>

Selection.Borders(xlEdgeTop).LineStyle = xlContinuous 選択範囲の上辺に罫線を引く

罫線を消す <第 1 単位 P.80>

Selection.Borders(xlDiagonalDown).LineStyle = xlNone 選択範囲の右下がり斜め線を消す

格子の罫線を引く <第 1 単位 P.80>

Range("A1:C5").Borders.LineStyle = xlContinuous セル範囲「A1:C5」に格子の罫線を引く

(10)

●データの抽出操作(AutoFilter)

データの抽出 <第 1 単位 P.95>

ActiveSheet.Range("$A$5:$J$34").AutoFilter Field:=4, Criteria1:="ゴールド"

4 列めが「ゴールド」のデータを抽出する

ActiveSheet.Range("$A$5:$J$34").AutoFilter Field:=7, Criteria1:=">=50"

7 列めが「50 以上」のデータを抽出する

※抽出対象の列が数値データの場合は、等号、不等号記号を使ってデータの抽出ができます。

●ハイパーリンクの操作

ハイパーリンクを挿入する <第 2 単位 P.30>

ActiveSheet.Hyperlinks.Add Anchor:=Range("A1"), _ Address:=" ", _

SubAddress:="全国!A1", _ TextToDisplay:="全国"

アクティブシートのセル「A1」に「全国」シートのセル「A1」へのリンクを「全国」という文字列で挿入する ActiveSheet.Hyperlinks.Add Anchor:=Range("A1"), _

Address:=" https://www.yahoo.co.jp/", _ TextToDisplay:="ヤフー"

アクティブシートのセル「A1」に www.yahoo.co.jp へのリンクを「ヤフー」という文字列で挿入する

ハイパーリンクの削除 <第 2 単位 P.30>

ActiveSheet.Hyperlinks.Delete

アクティブシート内のすべてのハイパーリンクを削除する Range("A2").Hyperlinks.Delete

セル「A2」に設定されているハイパーリンクを削除する

※文字も含めてすべての内容を削除する場合は、「Range("A2").Delete」とします。

ハイパーリンクの表示文字列を取り出す <第 2 単位 P.43>

Range("B2").Value = Range("A2").Hyperlinks(1).TextToDisplay セル「B2」に、セル「A2」のハイパーリンクの表示文字列を入力する

ハイパーリンクのアドレスを取り出す <第 2 単位 P.44>

Range("B2").Value = Range("A2").Hyperlinks(1).Address

セル「B2」に、セル「A2」のハイパーリンクのアドレスを入力する

(11)

●テーブルの操作

テーブルの行数を調べる <第 2 単位 P.147>

ListObject オブジェクト.ListRows.Count テーブルの行数を取得する

Msgbox ActiveSheet.ListObjects("集計表").ListRows.Count

アクティブシートの「集計表」テーブルの行数をメッセージボックスで表示する

テーブルの列数を調べる <第 2 単位 P.147>

ListObject オブジェクト.ListColumns.Count テーブルの列数を取得する

Msgbox ActiveSheet.ListObjects(1).ListColumns.Count

アクティブシートの 1 番めのテーブルの列数をメッセージボックスで表示する

テーブルの 1 行 1 列めの要素を指定する <第 2 単位 P.147>

ListObject オブジェクト.ListRows(1).Range (1) テーブルの 1 行 1 列めの要素を取得する

Msgbox ActiveSheet.ListObjects("集計表").ListRows(1).Range(1).Value

アクティブシートの「集計表」テーブルの 1 行 1 列めの値をメッセージボックスで表示する

テーブルの最終行に 1 行追加する <第 2 単位 P.154>

ListObject オブジェクト.ListRows.Add テーブルの最終行に 1 行追加する

Set myListRow = tbShukei.ListRows.Add

変数「tbShukei」に代入したテーブルの最終行に 1 行追加し、追加した ListRow オブジェクトを変数「myListRow」

に代入する

ピボットテーブルを更新する <第 2 単位 P.157>

ワークシートオブジェクト.PivotTables(インデックス番号).PibotCache.Refresh ワークシート内の指定したインデックス番号のピボットテーブルを更新する ActiveSheet.PivotTables(1).PivotCache.Refresh

アクティブシートの 1 番めのピボットテーブルを更新する

●図形の操作

図形を指定する <第 2 単位 P.52>

ワークシートオブジェクト.Shapes(インデックス番号).Select ワークシート内の指定したインデックス番号の図形を選択する ActiveSheet.Shapes(1).Select

アクティブシートの 1 番めの図形(1 番めに作成された図形)を選択する

※Shapes コレクションに含まれる単体の Shape オブジェクトを指定するには、「Shapes(インデックス番号)」を 使用します。インデックス番号は図形を作成した順番につけられています。

(12)

図形の種類を確認する <第 2 単位 P.55>

Shape オブジェクト.Type 図形の種類をあらわす値を返す MsgBox ActiveSheet.Shapes(1).Type

アクティブシートの 1 番めの図形の種類をメッセージボックスで表示する

定数 値 図形の種類

msoAutoShape 1 図形・オートシェイプ・ワードアート

msoCallout 2 吹き出し

msoChart 3 グラフ

msoComment 4 コメント

msoPicture 13 画像

msoTextBox 17 テキストボックス

msoSmartArt 24 スマートアート

図形を削除する <第 2 単位 P.57>

ワークシートオブジェクト.Shapes(インデックス番号).Delete ワークシート内の指定したインデックス番号の図形を削除する ActiveSheet.Shapes(1).Delete

アクティブシートの 1 番めの図形を削除する

グラフを作成する <第 2 単位 P.111>

ActiveSheet.Shapes.AddChart2(XlChartType:=グラフの種類を示す定数) アクティブシートにグラフ(指定したグラフ)を追加する

※Excel2010 では、上記の「AddChart2」の部分を「AddChart」にして使用してください。

Dim myShape as Shape

Set myShape = ActiveSheet.Shapes.AddChart2(XlChartType:=xlPie)

アクティブシートに円グラフを追加し、追加したグラフを変数「myShape」に代入する

グラフの種類 定数 グラフの種類 定数

集合縦棒 xlColumnClustered 3-D 円 xl3Dpie

積み上げ縦棒 xlColumnStacked 散布図 xlXYScatter

集合横棒 xlBarClustered 面 xlArea

3-D 積み上げ横棒 xlBarStacked 積み上げ面 xlAreaStacked

折れ線 xlLine ドーナツ xlDoughnut

データマーカー付き折れ線 xlLineMarkers レーダー xlRadar

円 xlPie

(13)

図形(グラフ)の位置を指定する <第 2 単位 P.112,第 2 単位 P.117>

Shape オブジェクト.Left = Range オブジェクト.Left 図形の左位置を、指定したセルの左位置に合わせる MyShape.Left = ActiveSheet.Range("B8:F8").Left

変数「myShape」に代入した図形(グラフ)の左位置を、セル範囲「B8:F8」の左位置に合わせる

Shape オブジェクト.Top = Range オブジェクト.Top 図形の上位置を、指定したセルの上位置に合わせる MyShape.Top = ActiveSheet.Range("B8:F8").Top

変数「myShape」に代入した図形(グラフ)の上位置を、セル範囲「B8:F8」の上位置に合わせる

図形(グラフ)の大きさを指定する <第 2 単位 P.112,第 2 単位 P.117>

Shape オブジェクト.Width = Range オブジェクト.Width 図形の幅を指定したセルの幅に合わせる

MyShape.Width = ActiveSheet.Range("B8:F8").Width

変数「myShape」に代入した図形(グラフ)の幅を、セル範囲「B8:F8」の幅に合わせる

Shape オブジェクト.Height = Range オブジェクト.Height 図形の高さを指定したセルの高さに合わせる

MyShape.Height = ActiveSheet.Range("B8:F8").Height

変数「myShape」に代入した図形(グラフ)の高さを、セル範囲「B8:F8」の高さに合わせる

グラフのデータ範囲を指定する <第 2 単位 P.113,第 2 単位 P.118>

Chart オブジェクト.SetSourceData Source:=Range オブジェクト グラフのデータ範囲を指定する

MyShape.Chart.SetSourceData Source:=ActiveSheet.Range("C5:F6")

変数「myShape」に代入したグラフのデータ範囲にセル範囲「C5:F6」を指定する

グラフタイトルを設定する <第 2 単位 P.113,第 2 単位 P.118>

Chart オブジェクト.HasTitle = True グラフタイトルを表示する

myShape.Chart.HasTitle = True

変数「myShape」に代入したグラフのグラフタイトルを表示する

※Excel2016 と Excel2013 では、グラフタイトルが標準で表示される設定になっていますので、「Chart オブジェ クト.HasTitle = True」を省略できます。

Chart オブジェクト.ChartTitle.Text = " グラフのタイトル"

グラフタイトルを「グラフのタイトル」に設定する myShape.Chart.ChartTitle.Text = "男女計"

変数「myShape」に代入したグラフのグラフタイトルを「男女計」に設定する

(14)

Chart オブジェクト.HasTitle = False グラフタイトルを非表示にする

myShape.Chart.HasTitle = False

変数「myShape」に代入したグラフのグラフタイトルを非表示にする

凡例を表示する・非表示にする <第 2 単位 P.113,第 2 単位 P.119>

Chart オブジェクト.HasLegend = True 凡例を表示する

myShape.Chart.HasLegend = True

変数「myShape」に代入したグラフの凡例を表示する

Chart オブジェクト.HasLegend = False 凡例を非表示にする

myShape.Chart.HasLegend = False

変数「myShape」に代入したグラフの凡例を非表示にする

系列のデータラベルを表示する <第 2 単位 P.113,第 2 単位 P.119>

Chart オブジェクト.SeriesCollection(1).HasDataLabels = True 系列 1 のデータラベルを表示する

※SeriesCollection のインデックス番号で系列番号を指定することができます。

myShape.Chart.SeriesCollection(1).HasDataLabels = True

変数「myShape」に代入したグラフの系列 1 のデータラベルを表示する

Chart オブジェクト.SeriesCollection(1).HasDataLabels = False 系列 1 のデータラベルを非表示にする

myShape.Chart.SeriesCollection(1).HasDataLabels = False

変数「myShape」に代入したグラフの系列 1 のデータラベルを非表示にする

●印刷の操作

印刷する <第 1 単位 P.94>

ActiveWindow.SelectedSheets.PrintOut

アクティブウィンドウで選択されているすべてのシートを印刷する ActiveWorkbook.PrintOut

アクティブブックの全てのシートを印刷する ActiveWorkbook.PrintOut Preview:=True

アクティブブックの全てのシートを印刷プレビューする ActiveWorkbook.PrintOut Copies:=2

アクティブブックの全てのシートを 2 部ずつ印刷する ActiveSheet.PrintOut

アクティブシートを印刷する

(15)

Worksheets(1).PrintOut From:=2, To:=3

1番めのシートの 2 ページから 3 ページまでを印刷する Range("A5:J25").PrintOut

セル範囲「A5:J25」を印刷する

●別のマクロの呼び出し

別のマクロを呼び出す <第 1 単位 P.97>

Call マクロ名

別のマクロを呼び出して実行する

●ファイル操作

ファイルダイアログボックスを表示する <第 2 単位 P.82>

Application.FileDialog(ダイアログボックスのタイプを示す定数).Show 定数で指定したダイアログボックスを表示する

※親オブジェクトの「Application」は省略できません。

Application.FileDialog(msoFileDialogFolderPicker).Show [参照]ダイアログボックス(フォルダー選択)を表示する

ダイアログボックスのタイプを示す定数 説明

msoFileDialogOpen [ファイルを開く]ダイアログボックス

msoFileDialogSaveAs [名前を付けて保存]ダイアログボックス

msoFileDialogFilePicker [参照]ダイアログボックス(ファイルを選択)

msoFileDialogFolderPicker [参照]ダイアログボックス(フォルダーを選択)

Dim FD As FileDialog Dim FolderPath As String

Set FD = Application.FileDialog(msoFileDialogFolderPicker) If FD.Show = True Then

FolderPath = FD.SelectedItems(1) MsgBox FolderPath

End If

[参照]ダイアログボックス(フォルダーを選択)を表示し、選択したフォルダーのパスをメッセージボックス で表示する

ファイル名やフォルダー名を取得する <第 2 単位 P.84>

変数 = Dir(フォルダーのパス, 属性を示す定数)

指定したフォルダー内で該当する属性のファイル名を変数に代入する

※Dir 関数は戻り値としてファイル名を返すので、文字列型の変数で戻り値を受けるようにします。

(16)

定数 説明

vbNormal 属性のないファイル(初期値)

vbReadOnly 読み取り専用のファイル

vbHidden 隠しファイル

vbSystem システムファイル

vbDirectory フォルダー

myFile = Dir(C:¥Doc¥)

「C」ドライブの「Doc」フォルダー内にある最初のファイル名を変数「myFile」に代入する Dim myFile As String

myFile = Dir("C:¥Temp¥") Do While myFile <> ""

MsgBox myFile myFile = Dir() Loop

「C」ドライブの「Temp」フォルダー内にあるすべてのファイル名をメッセージボックスで表示する

ブックを開く <第 2 単位 P.96>

Workbooks.Open Filename:="ファイル名"

ブックを開く

※ファイル名はフルパスで指定します。

Workbooks.Open Filename:="C:¥Users¥jmam¥Documents¥Book1.xlsx"

ドキュメントフォルダーの「Book1」ブックを開く

※ドキュメントフォルダーのパスはご利用の環境に依存します。

ブックを閉じる <第 2 単位 P.96>

Workbook オブジェクト.Close ブックを閉じる

ActiveWorkbook.Close アクティブなブックを閉じる Workbooks("Book1").Close

「Book1」を閉じる

PDF 形式で保存(エクスポート)する <第 2 単位 P.97>

親オブジェクト.ExportAsFixedFormat Type:=xlTypePDF,Filename:="PDF ファイル名"

選択したオブジェクトを PDF 形式で保存(エクスポート)する

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Users\Jmam\Documents\PDF ファイル.pdf"

アクティブシートを PDF 形式で「ドキュメント」フォルダー内に「PDF ファイル」という名前で保存する

※ 親オブジェクトには、Workbook オブジェクト、Worksheet オブジェクト、Range オブジェクトが指定できます。

Workbook オブジェクトを親オブジェクトに指定すると、ブックに含まれるすべてのシートを PDF 形式で保存する ことができます。

(17)

実行中のマクロを含む Excel ファイルのパスを取得する <第 2 単位 P.99>

ThisWorkbook.Path

実行中のマクロを含む Excel ファイルのパスを取得する MsgBox ThisWorkbook.Path

実行中のマクロを含む Excel ファイルのパスをメッセージボックスで表示する

制御構文

●条件分岐

1 分岐 <第 1 単位 P.130 , 第 2 単位 P.53>

If(条件式)Then

<処理>

End If

条件式が真のときに、処理を実行する

2 分岐 <第 1 単位 P.130>

If(条件式)Then

<処理 1>

Else

<処理 2>

End If

条件式が真のときに、処理 1 を実行し、それ以外のときは処理 2 を実行する

3 分岐以上 <第 1 単位 P.130 , 第 2 単位 P.67>

If(条件式 1)Then

<処理 1>

ElseIF(条件式 2)Then

<処理 2>

Else

<処理 3>

End If

条件式 1 が真のときに、処理 1 を実行し、条件式 2 が真のときに、処理 2 を実行する。条件式 1 にも条件式 2 に も該当しない場合は処理 3 を実行する

※条件式 1 が真となって処理 1 が実行された後は、「End If」の行が実行されて、分岐処理が終了します。

(18)

●ループ(繰り返し)

回数を指定してループする For ~ Next <第 1 単位 P.132 , 第 2 単位 P.20>

For カウント変数 = 最初の値 To 最後の値 (繰り返す処理)

Next

カウント変数に最初の値から順番に値を代入し、最後の値が代入されるまで、処理を繰り返す Dim i As Long

For i = 1 To 10

(繰り返す処理)

Next

10 回処理を繰り返す Dim i As Long

For i = 1 To Sheets.Count

(繰り返す処理)

Next

シートの数だけ処理を繰り返す

条件が満たされている間ループする Do While~Loop <第 1 単位 P.133 第 2 単位 P.85>

Do While 条件式

(繰り返す処理)

Loop

条件が満たされている間、処理を繰り返す Dim i As Long

i = 1

Do While Cells(i,"A").Value <> ""

(繰り返す処理) i = i + 1 Loop

変数「i」に 1 を代入し、1 行め A 列が空白でない場合は、処理を行い、対象の行を 1 ずつ増やしながら A 列の値 を調べる。値が空白になるまで処理を繰り返す

コレクション内の各要素を順番にループする For Each~Next <第 1 単位 P.134,第 2 単位 P.54>

For Each 変数 In コレクション

(繰り返す処理)

Next

コレクション内の各要素の数だけ処理を繰り返す Dim r As Range

For Each r In Range("A1:A40") (繰り返す処理)

Next

(19)

Dim shp as Shape

For Each shp In ActiveSheet.Shapes

(繰り返す処理)

Next

アクティブシートの図形を 1 つずつ変数「shp」に代入して図形の数だけ処理を繰り返す

変数と演算子

●変数

変数を宣言する <第 1 単位 P.121,第 2 単位 P.12>

Dim 変数名 As データ型

データ型を指定して変数を宣言する Dim myNumber As Long

長整数型の変数「myNumber」を宣言する Dim tax_Rate As Double

倍精度浮動小数点数型の変数「tax_Rate」を宣言する Dim myCompany As String

文字列型の変数「myCompany」を宣言する Dim myDay As Date

日付型の変数「myDay」を宣言する Dim myRange As Object

オブジェクト型の変数「myRange」を宣言する Dim myRange As Range

Range 型(オブジェクト型)の変数「myRange」を宣言する Dim myWS As Worksheet

Worksheet 型(オブジェクト型)の変数「myWS」を宣言する

変数に値を代入する <第 1 単位 P.122,第 2 単位 P.12>

myCompany = "日本能率協会マネジメントセンター"

変数「myCompany」に「日本能率協会マネジメントセンター」を代入する myNumber = 1000

変数「myNumber」に 1000 を代入する

※変数に数値を代入する場合は、値を囲むダブルクォーテーションを省略できます。

myDay = "2018/10/10"

変数「myDay」に「2018 年 10 月 10 日」を代入する myTime = "8:30:30"

変数「myTime」に「8 時 30 分 30 秒」を代入する myDay = "2018/10/10 8:30:30"

変数「myDay」に「2018 年 10 月 10 日 8 時 30 分 30 秒」を代入する

(20)

変数にオブジェクトを代入する <第 1 単位 P.122,第 2 単位 P.69>

Set 変数名 = オブジェクト

オブジェクト型の変数にオブジェクトを代入する Set myRange = Range("A1")

変数「myRange」にセル「A1」を代入する

●演算子

四則演算 <第 1 単位 P.124>

Range("A1").Value = myNumber + 10

加算 変数「myNumber」に 10 を足した数をセル「A1」に入力する Range("A2").Value = myNumber – 10

減算 変数「myNumber」から 10 を引いた数をセル「A2」に入力する Range("A3").Value = myNumber * 10

乗算 変数「myNumber」に 10 を掛けた数をセル「A3」に入力する Range("A4").Value = myNumber / 10

除算 変数「myNumber」を 10 で割った数をセル「A4」に入力する Range("A5").Value = myNumber ^ 2

べき乗 変数「myNumber」を 2 乗した数をセル「A5」に入力する Range("A6").Value = myNumber ¥ 7

除算の商 変数「myNumber」を 7 で割った商をセル「A6」に入力する Range("A7").Value = myNumber Mod 7

除算の余り 変数「myNumber」を 7 で割った余りをセル「A7」に入力する

文字列を連結する &演算子 <第 1 単位 P.125,第 2 単位 P.34>

Msgbox "私の名前は" & "山田太郎" & "です。"

メッセージボックスで、「私の名前は山田太郎です。」と表示する Msgbox "2 番めのシートの名前は" & Sheets(2).Name & "です。"

メッセーボックスで、「2 番めのシートの名前は(シート名)です。」と表示する

VBA 関数

●文字列操作

スペース(全角/半角)を削除する <第 2 単位 P.65,第 2 単位 P.72>

Trim("文字列")

指定した文字列から、前後のスペースを削除する LTrim("文字列")

指定した文字列の前のスペースを削除する RTrim("文字列")

(21)

指定した文字列を定数で指定した方法で変換する <第 2 単位 P.65,第 2 単位 P.74>

StrConv("文字列",変換の種類を示す定数) StrConv("Excel",vbNarrow) ➡ Excel

※変換の種類を示す定数には以下の定数を指定します。

定数 説明

vbUpperCase 文字列を大文字に変換する vbLowerCase 文字列を小文字に変換する

vbProperCase 文字列の各単語の先頭の文字を大文字に変換する

vbWide 文字列内の半角文字を全角文字に変換する

vbNarrow 文字列内の全角文字を半角文字に変換する

vbKatakana 文字列内のひらがなをカタカナに変換する vbHiragana 文字列内のカタカナをひらがなに変換する

文字列の一部を置換する <第 2 単位 P.66,第 2 単位 P.74>

Replace("対象の文字列"," 検索する文字列"," 置換する文字列") Replace("Excel VBA","Excel","Word") ➡ Word VBA

指定した文字列の文字数を返す <第 2 単位 P.66,第 2 単位 P.75>

Len("文字列") Len("ABC") ➡ 3

Len("東京都港区赤坂 1-1-1") ➡ 12

文字列の左端から指定した文字数分の文字列を返す <第 2 単位 P.66,第 2 単位 P.75>

Left("文字列", 文字数) Left("ABCDEFG",3) ➡ ABC

文字列の右端から指定した文字数分の文字列を返す <第 2 単位 P.66,第 2 単位 P.75>

Right("文字列", 文字数) Right("ABCDEFG",3) ➡ EFG

文字列の指定したスタート位置から指定した文字数分の文字列を返す <第 2 単位 P.66,第 2 単位 P.75>

Mid("文字列", スタート位置, 文字数) Mid("ABCDEFG",3,3) ➡ CDE

●日付操作

指定された 2 つの日付の差を計算する <第 2 単位 P.130>

DateDiff(単位を示す定数, 日付 1, 日付 2) 日付 1 と日付 2 の差を計算する

(22)

※単位を示す定数には以下の定数を指定します。

定数 説明 定数 説明

yyy 年 m 月

ww 週 n 分

q 四半期 d 日

h 時 s 秒

指定した日付の曜日を調べる <第 2 単位 P.131>

Weekday (日付)

Weekday 関数は曜日を示す数字を返す

戻り値 説明

1 日曜日

2 月曜日

3 火曜日

4 水曜日

5 木曜日

6 金曜日

7 土曜日

指定した日付から「年」を取り出す <第 2 単位 P.131>

Year(日付)

指定した日付から「月」を取り出す <第 2 単位 P.131>

Month(日付)

指定した日付から「日」を取り出す <第 2 単位 P.132>

Day(日付)

指定した日付に数字(単位)を加えた日付を調べる <第 2 単位 P.132>

DateAdd( 単位を示す定数, 数字, 日付)

※単位を示す定数は、DateDiff 関数と同じ定数を使用します。正の数で未来の日付、負の数を指定すると過去の 日付を調べることができます。

その他

●デバッグ

イミディエイトウィンドウに表示する <第 2 単位 P.101>

Debug.Print 変数名

変数の値をイミディエイトウィンドウに表示する

(23)

●アプリケーション

画面の更新を止める <第 2 単位 P.158>

Application.ScreenUpdating = False 画面の更新を再開する <第 2 単位 P.158>

Application.ScreenUpdating = True

参照

関連したドキュメント

巻末の「本資料に関してご留意頂きたい事項」および「本資料中で使用している指数について」を必ずご覧ください。

さらに、これらのデータは、営業、サービス、保守など輸送関係以外の部署において も 3.データベースの配置

受領 教科用図書給与児童生徒名簿�作成 小学校(小学部)用目録掲載図書 『教科用図書給与児童名簿』

独立行政法人国立文化財機構(以下「機構」という。)は、博物館を設置して有形文

6 寺島メソッドでは、これらを「思考実験表(時相転換表)」 (資料3)で一気に学ばせる。

ずれているところもあるのですが、雰囲気は分かります。レンズの上に描いた黄色の長楕円形の図形が

 階段部では蹴上・踏面・階段幅・傾斜の値を算

は同じ水位になります。