2019年09月29日

シートを印刷させてみた / Excel / VBA

シートを印刷するマクロを作ってみました。
これで、出来上がった受注票を印刷できます。


Worksheets("シート名").PrintOut
と書きます。


コーディング

Sub Macro1()

'受注票印刷
Worksheets("受注票").PrintOut

End Sub

こんな感じです。
20190929-02.JPG

この印刷のマクロは実行すると印刷設定の確認画面など開きませんので、まず印刷をするsheetを開いて実際に印刷させてください。その設定でマクロの印刷が実行されます。試し刷りの紙がもったいない時はPDF印刷などにしておくのをお勧めします。
20190929-01.JPG



前のページ:試作2 セルの値を違うシートに入力する(変数の宣言とか)
次のページ:

関連ページ
Excel VBA メニュー
VBAを使えるようにしてみました!
実例1 一覧表から帳票を自動で印刷させる



いざと言う時のためにガソリンを常備するのも有効です。車だけでなくエンジン式発電機などにもガソリンが必須です。
ガソリンは引火性が高いので専用容器で保管しましょう。







posted by haku1569 at 17:45| Excel VBA | このブログの読者になる | 更新情報をチェックする

2019年09月28日

セルの値を違うシートに入力する(変数の宣言とか)/ Excel / VBA

セルに入力されている値をゲットして、違うシートのセルに表示させてみましょう。
これで、受注マスタから受注コードゲットして受注票のVLOOKUP関数の検索値として入力すれば受注票が自動で作成できるようになりますよね

変数と言うのを使ってゲットした値を変数に保存します。
こんな感じです。
20190928-03.jpg

変数は適当な文字を使用することができますが、使用する前にこれが変数だと定義(宣言)しておく必要があります。

変数の定義
“s”を変数に定義するには
Dim s
と書きます。

で、変数に値を入力する場合は
s=

その後は値の代わりにsを使えるようになります

ワークシートの選択
Worksheets("Sheet1").Select
と記入します。“ ”にシート名を指定します。
複数のワークシートにまたがったマクロを作る時は、最初のワークシートからちゃんと選択させておいた方が間違いがありますん。

セルの値の取得
Cells(1, 1).Value
と入力します。(行,列)の番号を指定します。セルA1は(1,1)、セルB1は(1,2)になります。

セルにに値を入力する
Cells(1, 1) =
と入力します。値には変数なども入力できます。


標準モジュールに次の様なコードを入力します。
'”をつけると自由にコメントが記入できますのでプログラムの説明を記入しておくと後から分かりやすくなります


Sub Macro1()

'sを変数にする
Dim s

'sheet1を選択
Worksheets("Sheet1").Select

'セルA1の値をsに取得
s = Cells(1, 1).Value

'sheet2を選択
Worksheets("Sheet2").Select

'sをセルA1に表示させる
Cells(1, 1) = s

End Sub

こんな感じです。
20190928-04.JPG



sheet1のA1に"100"を入力しておきます。
20190928-01.JPG

で、マクロの上で「F5」キーを押して実行させると、sheet2のA1にも"100"が表示されました。
20190928-02.JPG

サンプルExcelファイル)試作2‗セルの値を違うシートに入力する.xlsm


さて、これで受注票が作成できるようになったので、次はシートを印刷させてみます。




前のページ:VLOOKUPで一覧表から帳票を作成してみた
次のページ:試作3 シートを印刷させてみた

関連ページ
Excel VBA メニュー
VBAを使えるようにしてみました!
実例1 一覧表から帳票を自動で印刷させる


台風15号は停電の怖さ、不便さを嫌と言うほど教えてくれました。
いざと言う時に何ができるのか、を考えておかないといけませんね。電気がなくても煮炊きや灯りをつけられるようにキャンプ用品を準備するのも良いし、けどどうしても電気がないとダメな電気用品もあるので、小型の発電機もこれからは一家に一台の時代になるかもですね。。。

ラベル:変数
posted by haku1569 at 13:56| Excel VBA | このブログの読者になる | 更新情報をチェックする

2019年09月21日

VLOOKUPで一覧表から帳票を作成してみた / Excel / 関数

 さて、前回は印刷指示があった時の処理の進め方のマクロ(条件分岐)の試作ができましたが、次はその印刷指示があった時に印刷させる帳票の作成をしてみようと思います。
 一覧表から帳票の作る方法は色々あると思います。VBAで作るとしたら、印刷指示のあった行の各項目(列)の値をゲットしてそれを帳票の所定のセルに入力するやり方でもできますが、今回はVBAは使わずに単純にVLOOKUP関数をつかって帳票を作ってみようと思います。この方が帳票のレイアウトを自由に変更したりできると思いますし、マクロが出来ない人でも、ある程度帳票の編集が可能です。

で、こんな感じです。
受注票に受注コードを入力するとその受注コードを引数としてVLOOKUP関数で、その受注コードのデータの所定の値を表示させるようにしたいと思います。
20190921-05.jpg

出来上がった受注票の印刷イメージです。
20190921-03.JPG

Excelの受注票のワークシートです。
20190921-01.JPG

受注コードには受注一覧の受注コードを入力します。
と、それを引数にしたVLOOKUP関数が各セルに入力しています。
20190921-02.JPG


20190921-04.JPG


VLOOUP関数の使いかたはこちらをご覧ください。

さっ、これで受注一覧から受注票を作成することができました。
次は、この受注票への受注コードの入力をマクロを使って印刷指示があったデータの受注コードを自動でにゅうりょくさせてみようと思います。



 来月から、消費税が8%から10%にアップしてしまいます。巷では「消費税が2%アップ」なんて言う報道がされたりしていますが、このページを見ている男女は多少は数学の知識は持ち合わせていると思うので、「2%アップ」は間違いで「2ポイントアップ」と言うべきだとお分かりですよね。ってか、そんな報道してていいの?誰も間違いを指摘しなくていいの?数学者は何やってんの?と思うのですが、、、
消費税の上昇率は1000円の物を買った時の消費税が80円から20円も上がって100円になるので、「25%アップ」が正しい表現です!
 ほんでもって、もっといい加減なのは、軽減税率や、キャッシュレス推進のためのポイント還元なんかをごっちゃ混ぜにして「同じものを買っても買う店や支払い方で税率が変わる!」なんて連呼してるテレビを観ました。もう、開いた口がふさがらずに涎が垂れ流しです。テレビ番組って専門家が監修したりしないだろうか、数学的な知識皆無なディレクターなんかが適当に作ってんのかなー。。。
嘆かわしい世の中です。ぜひみなさん男女は正しい目で真実を見極めてくださいね!
 牛丼屋なんかでは、店内で食べてもお弁当でも税込みの支払金額を同一にするために、本体価格を分るところもあるようです。みなさん男女はもし消費税が8%でも10%でも支払うお金が一緒だったらどっちにしますか?俺だったら、消費税が医療や介護の社会保障にちゃんと使われるなら10%になるように店内で食べます。けど、それがホントかどうかわかんねーからなー。。。



前のページ:試作1 セルに1が入力されていたら隣のセルにOKを表示する
次のページ:試作2 セルの値を違うシートに入力する(変数の宣言とか)

関連ページ
Excel VBA メニュー
VBAを使えるようにしてみました!
VLOOKUPで列方向の検索をして表示させてみた



アウトドアにも最適な季節になってきましたが、テントの設営も金属ポールを組み立てる必要はもうありません!
空気を充てんするだけで自立する文字通りエアテント!これでテントの設営、撤収がだいぶ楽ちんになりますね。






ラベル:VLOOKUP関数
posted by haku1569 at 17:01| Excel VBA | このブログの読者になる | 更新情報をチェックする

2019年09月16日

試作1 セルに1が入力されていたら隣のセルにOKを表示する / Excel / VBA

 さてと、ここから本題です。前回の「一覧表から帳票を自動で印刷させる」の中で処理の流れを言葉で書き出してみましたが、その中でまず最初に取り掛かるのは 4.の「所定の列に印刷指示が入力されていたら受注票を作成する」です。なぜそこからかと言うと。。。慣れてくればおいおい分かって来ますので(?)まずそこから片付けていきます。
 ただ、いきなり受注票は作らないと言うか、受注票はマクロじゃなくてExcelの関数を使おうと思っているので、受注票は作らない別の試作をまず作ってみようと思います。

試作の目的は条件を満たしているかどうかによって処理を分岐させることです(条件分岐)。Excleの関数で考えるとIF関数です。
「所定のセルに印刷指示が入力されていたら」が条件分岐になります。

試作ではセルA2に“1”が入力されていたらセル“B2”に“OK”と表示し“1”の入力がなかったらセルB2に“NG”表示させてみます。
20190916-01.jpg図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

こんな感じです
20190916-02.JPG図2

標準モージュールの上で「F5」キーを押してマクロを実行させます。
セルA2に“1”が入力してあると
20190916-03.JPG図3

試しに“2”と入力してみると
20190916-04.JPG図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 | このブログの読者になる | 更新情報をチェックする

2019年09月14日

実例1 一覧表から帳票を自動で印刷させる / Excel / VBA

最初の課題に挙げたのは「一覧表から帳票を自動で印刷させる」です。
いきなり難しそうですが、“「こんにちは」と画面に表示させる” とかよりも現実的な方が興味深々でしょ?
って、どういう内容かと言うと。。。

ある食品問屋の受注一覧表(受注マスタ)がありました。
Excelで入力したこんな表を作っています。
テーブルに設定してあって、ピボットテーブル等で様々な集計ができる機能的なテーブルになっています。
20190908-03.JPG

で、この問屋さんでは格拠点の営業からFAXで届く受注情報をこの受注マスタに入力すると同時に食材毎の仕入れ担当者に手書きで「受注票」を作成発行し、仕入れの指示書としています。
その作業を合理化するために受注マスタから受注票の作成から印刷までをマクロをで自動化させてみたいと思います。
こんなイメージです。
20190908-02.jpg

で、この処理の流れを言葉で書きだしてみます。
  1. 受注マスタの受注票を発行したい行に印刷の指示を入力します。一度に何件でも入力できるようにします
  2. マクロを実行させます
  3. 受注マスタの一番最初の行に行きます
  4. 所定の列に印刷指示が入力されてたら受注票を作成します
  5. 作った受注票を印刷します
  6. 次の行を見に行きます
  7. 4〜6を繰り返し最後の行まで行ったら終了します。


こんな流れでしょうか。
では、いよいよ次回からはこの処理を実行するために必要なマクロをひとつずつ作っていきましょう。



前のページ:マクロで何をさせたいか?目的は何!?どうしたいの?
次のページ:試作1 セルに1が入力されていたら隣のセルにOKを表示する

関連ページ
Excel VBA メニュー
VBAを使えるようにしてみました!
マクロで何をさせたいか?目的は何!?どうしたいの?


災害は忘れた頃にやってきます。
備えあれば憂い無し!
防災用品はいざと言う時(慌てている時や、真っ暗闇の中)でも直ぐに使えるように1か月に一度は使う練習をしておきましょう!

posted by haku1569 at 19:05| Excel VBA | このブログの読者になる | 更新情報をチェックする

2019年09月08日

マクロで何をさせたいか?目的は何!?どうしたいの?/ Excel / VBA

VBAを使えるようになるために、色々なマクロを実行させるオブジェクトやそれらのプロパティーの使いかたを勉強したり、プログラムの書き方(コーディング)を勉強したりするのも必要なことなのですが、まぁ、そう言う勉強方法は学校の授業みたいで、何のためにやっているのか?目的意識が何だか分からなくなってきます。
基礎的な事からコツコツ学んでいけば何れは自由自在にVBAが使えてどんなマクロも作っていけるようになる?
って信じる人が救われるかもです。が、英会話と一緒で学校で単語や文法を勉強したからと言ってしゃべれるようになるかと言うとハッキリ言って出来ないですよね。フツーは。
それより、海外に行ってどうしても話さなくてはならない状態になって、必要に迫られると文法が合ってるかどうかなんて関係なく話せるようになる。話せるようになると言うか、生活に困らなくなる。
そう、目的は「英語が話せるようになる」ではなく「海外で不自由なく生活が出来る様な会話ができる」なのです。
それが正しい英語と言えるかどうかは二の次です。
20190908-04.jpg

だから、VBAもマクロを作って何がしたいか、今何に困っているか、マクロを作るとどれだけ楽に短時間に仕事が出来る様になるか、目的を明確にして、その課題を解決していく。そんな経験を積み重ねることによって、いつの間にかVBAをそこそこ使えるようになっていたと言うのが、マクロ上達の近道なのだ思うわけであります。

と言うわけで、次回からは具体的に課題を想定してそれをマクロで解決していきたいと思います。
まず最初の課題は、一覧表から帳票を自動で印刷させてみようと思います。



前のページ:
次のページ:

関連ページ
Excel VBA メニュー
VBAを使えるようにしてみました!



100年以上の歴史をもつスウェーデンのマルチフューエルストーブ。
こんなん持って外でコーヒーでも入れたらサイコーだぜっ!

posted by haku1569 at 18:44| Excel VBA | このブログの読者になる | 更新情報をチェックする

2019年09月07日

セルの値を削除してみた-2 / Excel / VBA

さて、次は範囲を指定したセルの値を削除してみましょう。
そう、だいたい想像がついていると思いますが()内にセルの範囲を指定します。

最初にA1からC10の範囲に“100”を入力しておきます。
20190907-12.JPG

で、標準モジュールに次の様なコードを入力します。

Sub Macro1()

Range("A1:B5").ClearContents

End Sub



こんな感じです。
20190907-13.JPG

で、「F5」キーを押して実行してみます。
と、A1〜B5の範囲の“100”が削除されています。
20190907-11.JPG

以上!


前のページ:セルの値を削除してみた-1
次のページ:


関連ページ
Excel VBA メニュー
VBAを使えるようにしてみました!
posted by haku1569 at 10:53| Excel VBA | このブログの読者になる | 更新情報をチェックする

セルの値を削除してみた-1 / Excel / VBA

今日は、セルに入力されている値を削除させてみましょう。
Range("A1").ClearContentsを使用します。

標準モジュールに次の様なコードを入力します。

Sub Macro1()

Range("A1").ClearContents

End Sub



こんな感じです。
20190907-01.JPG

で、予めセルA1に“100”を入力しておきます。
20190907-02.JPG

で、「F5」キーを押して実行してみます。
と、“100”が削除されています。
20190907-03.JPG

じゃ、次はある範囲の値を削除してみましょう。



関連ページ
Excel VBA メニュー
VBAを使えるようにしてみました!
posted by haku1569 at 10:01| Excel VBA | このブログの読者になる | 更新情報をチェックする

2019年09月01日

Excel VBA メニュー

はじめに



実例1 一覧表から帳票を自動で印刷させる













セルの操作



解説


コラム

posted by haku1569 at 16:43| Excel VBA | このブログの読者になる | 更新情報をチェックする

セルに値を表示させてみた! / Excel / VBA

今日は、セルに値を表示させてみましょう。
Rangeオブジェクトを使用します。

標準モジュールに次の様なコードを入力します。

Sub TEST()
Range("A1") = 100

End Sub


こんな感じです。
20190901-02.JPG

で、「F5」キーを押して実行してみます。
とエクセルのシートのセルA1に“100”と表示されました。
20190901-03.JPG

Range("A1")A1は、値を表示させるセルの位置を表しています。
で、=で表示させる値を指定します。
文字を表示させるときは“”で囲みます。

Sub TEST()
Range("A1") = 100
Range("A2") = "おはようございます!"

End Sub


20190901-04.JPG


「F5」キーを押すとマクロの実行画面が表示されます。
このマクロ名は Sub TEST() で付けた“TEST”になります。
20190901-05.JPG

とエクセルのシートはこのように表示されました。
20190901-01.JPG





関連ページ
Excel VBA メニュー
VBAを使えるようにしてみました!







ラベル:Rannge セル操作
posted by haku1569 at 16:35| Excel VBA | このブログの読者になる | 更新情報をチェックする