Top

hiroyuki.tank.support.site

簡単!マクロ講座

第37回〜あてな-コードの追加〜


 前回マクロの自動記録で作ったコードは次のようになっています。
 この解説をします。
***********************************************
1 Sub Macro1()
2 Sheets("データ").Select
3 Range("B2:F11").Select
4 Selection.Copy
5 Sheets("入力").Select
6 Range("A2").Select
7 ActiveSheet.Paste
8 Application.CutCopyMode = False
9 Sheets("様式").Select
10 ActiveWindow.SelectedSheets.PrintPreview
11 End Sub
***********************************************

1行-マクロの名前は「Macro1」これはエクセルが勝手につけました。
2行-シート「データ」を選択
3行-セルB2:F11を選択
4行-コピー
5行-シート「入力」を選択
6行-セルA2を選択
7行-貼り付け
8行-コピーモードをキャンセル(コピーするとセルがちかちか点滅したようになっていますが,このちかちかを終わらせることです。キーボードでは[Esc]キーを押すとこれと同じことになります。)
9行-シート「様式」を選択
10行-印刷プレビューを表示
11行-終わり

 こうやって見ると自分がやった操作がそのまま英語で書いてあるような感じです。
 このままではまだ半自動ですから,ちょいとコードを追加や修正して全自動になるようにします。今は手順の4〜6を作ったので次は自動記録ではできない1〜3のコードを書きます。

【手順】
1.セルC7をみる
2.セルC7の値を取得
3.取得した値がシート「データ」の何番目の人かを判断

 セルC7をみて値を取得する必要があります。これはセルC7の値を一旦ある変数に入れておいて後から使うということがいいみたいです。
 変数名を「no」とします。
 1行目の次に
no = Sheets("メイン").Range("c7")
と書いてください。
 これで「no」にシートメインのセルc7の値が入ります。
 次に,取得した値がシート「データ」の何番目の人かを判断しなければなりません。
 ここで,住所のデータは必ず1から順番に並んでいることにしましょう。そのほうが簡単にできますから。
 そうすると,データのシートの2行目から住所のデータを入力するようになっているので,noが1だったら2行目の人から10人分印刷することになります。noが5だったら6行目の人から10人分印刷です。
 今度はこの変数「no」を利用してユーザーが印刷したいと指示してきた人を選択してコピーして様式に貼り付けなければなりません。
 いまからがちょっとむつかしいポイントになります。次回につづく・・・

| hiroyuki.tank.support.site.Top | このページのTop | マクロ講座目次 | 前回 | 次回 |