<この動画で学べる事>
マクロの初期設定、VBEの起動 実行 セルの参照方法 セルの値の代入 変数 シート間のセルの参照 繰り返し 終了判断 コメントブロック Nullとは 最終行の取得方法 Exit for、Exit Sub ボタン作成 シートの選択 変数の宣言 整数とは 整数の表示範囲 オーバーフロー 変数の強制宣言 マクロファイルの保存方法
マクロの初期設定
マクロを始める準備をしましょう!
ファイル→オプション→ セキュリティーセンター あるいは トラストセンター
セキュリティーセンターの設定あるいは、トラストセンターの設定から
マクロの設定で 2番目の
警告を表示してすべてのマクロを無効にする を選びます
マクロの設定で 警告を表示してすべてのマクロを無効にする を選んだので、
マクロブック開くとき1度だけ、このような表示がでます
自分で作ったマクロ等、内容がわかっているもの以外有効にしないようにしましょう!
作成したマクロであれば、マクロを有効にするを選んでください
有効にしなければ、マクロを実行できません
ファイル→オプション
リボンのユーザー設定で、開発に✓を入れてください
これで、マクロが使えるようになります
開発タブが表示されていますね!?
Visual BasicからVBAを開始できます
シートの作成
会社情報と言う名前のシートを追加します
このデータを招待状に差し込んでいきます
シート欄の+ボタンをを押すと新しいシートが作成されます
データの内容は…
4行目から始まるB列に会社名、C列に部署~という様に、データの位置は同じにしてくださいね
シート名は 会社情報です
シート名を変える方法は、シート名を右クリックで名前の変更を選ぶか、
シート名をダブルクリックし、選択された状態でシート名を入力してください。
招待状というシートも作ってください
内容は同じものでなくても、シートだけあればいいです
下準備ができました
いよいよマクロを始めますよ~
VBEの起動
VBE(Visual Basic Editor)を起動します
まず開発タブのVisual Basicを押してください
ショートカットキーAlt+F11でも起動できます
なにやらむずかしそうなのが出てきましたが…
気にせずいきましょう~
(ファイル名は、名前を付けて保存するまでは、Book1.xlsx等となっています)
プロジェクトエキスプローラとプロパティウインドウの表示の仕方
このような表示が出ない人は、表示から、プロジェクトエクスプローラーを選びます
プロパティウインドウも選択しておきましょう
プロジェクトエクスプローラに、
今作成した会社情報と招待状シートが表示されているはずです
モジュールの追加方法
プログラムを作っていきましょう!
プログラムを作成する場所を確保します
挿入→標準モジュールを選びます
Module1 ここにプログラムを作成します
Subの書き方
Sub 招待状 と入力し、Enterを押します
プログラム名の後ろに()かっこが付き、End Subと追加されます
招待状はプログラム名です
すきな名前をつけて下さい
SubとEnd Subのなかにプログラムを書いていきます
Msgbox関数
メッセージボックス関数とは、メッセージボックスを表示するための関数です
メッセージやセルの値などを表示するのに使います
Sub 招待状()
MsgBox "MsgBoxの練習です"
End Sub
実行
ユーザーフォームの実行キーを押します
F5キーでも実行します
セルの参照方法
列番号を数字で表示することもできます
ファイル→オプション→数式
数式の処理 R1C1参照形式を使用するに✓を入れます
セルの値
セルの情報
表示する値、セルの文字の色、背景色、罫線etcたくさんの情報を持っている
この中のセルの値は…
Range(“番地”).value あるいは Cells(行,列).value
ただし、.valueは省略できます
省略して使う場合、.Valueが省略されていることを覚えておいてくださいね!
コメント
コメントは、式の前に ’ (シングルコーテーション)を書きます
表示が緑にかわります
シングルコーテーション以下の行のプログラムは実行されません
・プログラムの説明
・変数の意味
・一時、実行したくないもの に使います
セルの値の代入
Cells(10, 2) = Range(“b4”)
b4セルの値、A株式会社を10行2列に代入します
この=は、代入演算子といいます
右辺の内容左辺に代入します
左辺 ← 右辺
普通の数学で使うイコール=とは違うことに注意してください
イコールより左向き矢印のイメージです
シート上にも書き出すことができました!
変数
変数は、よく箱にたとえられます
数値や文字列をこの箱に入れて、使うことができます
また、変数は名前を付けて使います
この名前を変数名と言います
i=Range(”C4″)
Range(”C4″)の値を変数 i に代入します
MsgBox 文字列と変数の連結表示
Sub 招待状()
i = Cells(4, 3)
MsgBox "Cells(4, 3)=" & i
End Sub
セルの位置も変数を使って…
Sub 招待状()
i = 4
j = Cells(i, 4)
MsgBox "Cells(4, 4)=" & j
End Sub
RangeでもCellsでも、変数を使ってセルの値を取り出すことができましたね!
インデント(字下げ)
プログラムを読みやすくするためです
あるいは、Tabキーでも
今はあまり効果ありませんが、プログラムが長くなると必須です
後々、頻繁に出てきます~
シート間のセルの転記
これまでの知識を使って、招待状シートを作成していきましょう
会社情報シートのデータを招待状シートへ転記していきます
会社情報と招待状は別シートです
違うシートに代入するので、何番のセルと言っても、どのシートの何番のセルかわかりません
ですので、セル情報の前にシート名の指定が必要です
会社情報シートのセル番地の値を招待状シートのセル番地に!
セル情報の前にWorksheets関数を加えます
Worksheetsの最後のsを忘れずに複数形にします
コメントブロック
まとめてコメントに…
シート間のセルの転記
Worksheets(“招待状”).Range(“b5”) ← Worksheets(“会社情報”).Range(“b4”)
このデータを…
こちらに転記!
あとのデータも同様に招待状の対応するセルに転記していきます
Sub 招待状()
'郵便番号
Worksheets("招待状").Range("b3") = Worksheets("会社情報").Range("d4")
'住所
Worksheets("招待状").Range("b4") = Worksheets("会社情報").Range("e4")
'会社名
Worksheets("招待状").Range("b5") = Worksheets("会社情報").Range("b4")
'部署
Worksheets("招待状").Range("b6") = Worksheets("会社情報").Range("c4")
'電話番号
Worksheets("招待状").Range("b7") = Worksheets("会社情報").Range("f4")
' i = 4
' j = Cells(i, 4)
' MsgBox "Cells(4, 4)=" & j
End Sub
A株式会社の招待状ができた!
右辺をCellsで表してみましょう!
会社情報シートをR1C1形式で表示します
Cells(4, )の4は、4行目の4です
A株式会社を表します
4を5に変えれば、B株式会社を表します
行番号に変数を使ってみましょう!
i の値を 4~8に変更していけば、A株式会社~E株式会社まで転記することができる
PrintPreviewとPrintOut
PrintPreview:印刷イメージを表示します
PrintOut :印刷します
Worksheets(“シート名”).PrintPreviewあるいは
Worksheets(“シート名“).PrintOutを指定します
PrintOutする前にPrintPreviewで印刷イメージを確認しましょう!
Breakキー
Nullとは
インデントを戻す
シートの選択(Select,Activate)
繰り返し For Next
終了判断 If Then Else
フローチャート
Exit for、Exit sub
最終行の取得方法
ボタン作成
図形からボタン作成
変数の宣言
整数とは
宣言の意味
整数の表示範囲 オーバーフロー
変数の強制宣言
マクロファイルの保存方法
Option Explicit
Sub 招待状()
Dim i As Integer
For i = 4 To Cells(Rows.Count, 2).End(xlUp).Row
'郵便番号
Worksheets("招待状").Range("b3") = Worksheets("会社情報").Cells(i, 4)
'住所
Worksheets("招待状").Range("b4") = Worksheets("会社情報").Cells(i, 5)
'会社名
Worksheets("招待状").Range("b5") = Worksheets("会社情報").Cells(i, 2)
'部署
Worksheets("招待状").Range("b6") = Worksheets("会社情報").Cells(i, 3)
'電話番号
Worksheets("招待状").Range("b7") = Worksheets("会社情報").Cells(i, 6)
Worksheets("招待状").PrintPreview
'Worksheets("招待状").PrintOut
Worksheets("会社情報").Select
Next i
End Sub
参考ファイルのLink
https://1drv.ms/x/s!AtH3WjvXQPcTuzITwEdouBpipOjI
コメント