さてと、ここから本題です。
前回の「一覧表から帳票を自動で印刷させる」の中で処理の流れを言葉で書き出してみましたが、その中でまず最初に取り掛かるのは 4.の「所定の列に印刷指示が入力されていたら受注票を作成する」です。なぜそこからかと言うと。。。慣れてくればおいおい分かって来ますので(?)まずそこから片付けていきます。
ただ、いきなり受注票は作らないと言うか、受注票はマクロじゃなくてExcelの関数を使おうと思っているので、受注票は作らない別の試作をまず作ってみようと思います。
試作の目的は条件を満たしているかどうかによって処理を分岐させることです(条件分岐)。Excleの関数で考えるとIF関数です。
「所定のセルに印刷指示が入力されていたら」が条件分岐になります。
試作ではセルA2に“1”が入力されていたらセル“B2”に“OK”と表示し“1”の入力がなかったらセルB2に“NG”表示させてみます。
図1
条件分岐のVBAはIFを使用します。
If 〜:条件を指定します
Then〜:条件を満たしたときの処理を指定します
Else〜:条件を満たさなかった時の処理を指定します(省略すると条件を満たさない時は何も行いません)
End If:条件分岐の終了
セルの値は
Cells(行番号,列番号)で指定します。
かっこの中は行番号と列番号の数字になります。例えば、セルA1だったら
(1,1)、A2だったら
(2,1)、A2だったら
(2,1)となります。
セルA1が“1”は
Cells(1,1)=1 と記入します。
同様にセルB2に“OK”を表示させるのは
Cells(2,2)="OK" と記入します
標準モジュールを追加して次の様にコーディングします。
Sub Macro1()
If Cells(2, 1) = 1 Then 'セルA2が1の時 Cells(2, 2) = "OK" 'セルB2に“OK”を表示 Else 'そうでなかったら Cells(2, 2) = "NG" '“NG”を表示 End If '条件分岐の終了 End Subこんな感じです
図2
標準モージュールの上で「F5」キーを押してマクロを実行させます。
セルA2に“1”が入力してあると
図3
試しに“2”と入力してみると
図4
と表示されました。
以上で、条件分岐の試作ができました。
サンプルExcelファイル)
試作1 セルに1が入力されていたら隣のセルにOKを表示する.xlsmこれで、セルに印刷指示がある時に受注票を印刷させる条件分岐はなんとかなりそうです。
なんか複雑そうに見えるマクロでも単純な形に変えてみてそれらの組み合わせになるように考えていけば比較的楽に出来る様になりますよ。
ところで、Windows10の2019年5月のアップデート以来、Chromeが遅いと言うか、Chromeを開いてこうしてブログを書いているとパソコンがフリーズ寸前みたく処理が全然進まなくなってしまうんだけど。。。
XPからVistaかた10と、OSのサポートが切れるとそれに合わせてPCを最新OSの物に買い替えているのだけど、新しいPCになっても画期的に早くなったと感じないのは俺だけ?10万位のPCだから?20万位の高いPCなら早い?Chromeも早くなる?
っと、ネットで調べてたらマイクロソフトのサイトに「
Windows 10 で PC のパフォーマンスを向上させるためのヒント」と言うのがあったので、皆さんも参考にしてみては?
因みに、そこに出ていた様にスタートアップをほぼ全部停止させたら、早くなったように思います!
前のページ:
一覧表から帳票を自動で印刷させる次のページ:
VLOOKUPで一覧表から帳票を作成してみた関連ページ・
Excel VBA メニュー・
VBAを使えるようにしてみました!鯉口と言って袖口がやや窄まっている和装の下着なのだが今は庭師や料理人の作業着やお祭り衣装として使われてます。
日本人には日本古来の作業着がよく似合う!
posted by haku1569 at 16:21|
Excel VBA
|
|