2019年10月14日

メッセージを表示する / Excel / VBA

受注マスタから受注票を印刷させるためのマクロの基本的な試作は終わったんで、他に必要なマクロの試作を作ってみます。

メッセージの表示です。
例えば繰り返し処理(For〜Next)を伴うマクロは一旦実行すると途中で止めることはできません。
まして印刷(紙出し)のマクロだと間違って実行させてしまうと紙が無駄になってしまうかもしれません。ので、マクロを実行させる前に注意喚起のメッセージとか、確認のメッセージを表示させてあげます。
20191014-21.jpg

メッセージボックス
MsgBox("メッセージ", vbYesNo + vbQuestion + vbDefaultButton2, "タイトル")

メッセージ:表示させるメッセージ
vbYesNo:「はい」、「いいえ」のボタンを表示します
vbQuestion:質問のメッセージボックス
vbDefaultButton2:既定値を「いいえ」
タイトル:メッセージボックスのタイトル

で、ボタンを押した結果は
「はい」:vbYes
「いいえ」:vbNo

複数の条件分岐
条件分岐と言うとIF〜THEN〜ELSEとなるけど、複数の条件での分岐の場合は
Select Case 変数 を使います。
Case vbYes:「はい」を押した場合
   処理

メッセージ表示マクロ

Sub Macro1()

'変数A
Dim A

'問合せメッセージボックス表示
'ボタン「はい」、「いいえ」
'既定値「いいえ」

A = MsgBox("印刷設定は完了していますか?", vbYesNo + vbQuestion + vbDefaultButton2, "印刷設定確認")

'押されたボタンの確認
Select Case A

'「はい」の場合
Case vbYes

'セルA1に1を表示する
Cells(1, 1) = 1


End Select

こんな感じです
20191013-13.JPG


マクロを実行すると
メッセージボックスが表示されます。
質問のメッセージボックスは“?”が表示されます
20191013-11.JPG

で、「はい」を押すとセルA1に1が表示されました
20191013-12.JPG

サンプルExcelファイル)20191013_メッセージボックス.zip

ちなみに、他のメッセージボックスは
vbCritical:警告
20191014-25.JPG

vbExclamation:注意
20191014-24.JPG

vbInformation:情報
20191014-23.JPG

と言うわけで、メッセージボックスは様々な場面でメッセージを表示させられる便利な機能ですが、あまり多用すると、「ウザッ!」ってなって、いちいち「はい」を押すのさえ「めんどくせー」ってことになるから、出来るだけ使わない方がいいと思います。
それに、最初は使用方法を補佐する目的で使いがちになってしまい、使い方を覚えてしまうと要らないメッセージになってしまいます。使い慣れてきてから、それでも必要なメッセージを表示させるようにした方が良いんじゃないかなー。。
20191014-22.jpg



前のページ:最終行を取得する
次のページ:マクロを実行するマクロ

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



 ランタンって言うと、停電の時やキャンプなどで使用する灯りってイメージだけど、LEDになって乾電池でも長時間使用できるようになってからインテリア照明としても使用できるおしゃれな物も増えてきました。
 そんな中、満を持しておしゃれ家電メーカーのバルミューダが素敵なLEDランタンを発売しました。
 キャンドルのように揺らめく光や、調光機能による明るさレベルに応じて変化する光の色など、まったりしてしまう優しい灯りです。






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

2019年10月12日

最終行を取得する / Excel / VBA

「7.4〜6を繰り返し最後の行まで行ったら終了します。」
さて、データの1行目から最終の行まで繰り返し処理をさせようとした時、最終の行っていくつだ!?
ってことで、最終行の行番号を求めるマクロを試作してみましょう。

Excelで最終行に移動するのはどうやってますか?
ボクは主に「ctrl」+「↓」でやってるんですが、たまに途中に空白行があるとその手前でストップしてしまい、イラッとする時があります。
20191012-03.JPG

なので、別の方法でやってみます。まずデータの範囲を下方向に外れたセルを選択します。
20191012-04.JPG

そこで「end」キーを押してENDモードにしてから「↑」キーを押すと下からデータ範囲の一番下のセルでストップします。データ範囲の上から下に行くのではなくてデータ範囲外の下か上にデータが入力されているセルを捜します。
20191012-05.JPG


最終行を選択
まずデータの範囲外の下の方の行き方ですが、Excelが用意しているワークシートの最終行まで一気にジャンプします。

Cells(Rows.Count, 1)

Excelのバージョンに関わらず最終行が Rows.Count となります

ENDモードで上方向にジャンプ
End(xlUp)

ジャンプ先の行番号は
End(xlUp).Row となります。


それでは、データ範囲の最終行を取得するマクロです

Sub macro1()

'nを変数
Dim n

'列Aの最終行からENDモードで上方向にジャンプして
'データのあるセルの行番号をnに保管

n = Cells(Rows.Count, 1).End(xlUp).Row

'セルC1に変数nの値を表示
Cells(1, 3) = n


End Sub


こんなんです。
20191012-01.JPG

で、実行結果がこれ
20191012-02.JPG

サンプルExcelファイル)20191012_最終行数を取得する.zip






前のページ:繰り返し処理の試作(For〜Next)
次のページ:メッセージを表示する

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


なんか、最近は関東地方を直撃する台風が来るな〜 (*_*)
日本の昔からの課題は「治水」、毎年のようにどこかで水害が起きているけど、なかなか水を治めることが出来てません。
ってことは、住む場所はハザードマップを確認して水害が起きないような場所を選ぶのがベストだと思う。
あとは、家そのものが雨風や地震、水害になんかに強い構造になっているかですよねー。
屋根の構造とか、雨戸やシャッターが付いてるかとか、耐震性能がどうかとか。。。
「そこまで考えてられない」って言うのもあるかもしれないけど、ホント最近は想定外の自然災害が多いので、住居の安全性は家賃や駅からの距離以上に最優先で考えるべき条件なんだと思う。

停電になった時に、こんなんで発電したらちっとは足しになんのかなー。。。





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

2019年10月06日

繰り返し処理の試作(For〜Next) / Excel / VBA

今回は繰り返し処理のマクロを試作してみます。
繰り返し処理と言うのは、ある処理を設定した回数だけ繰り返して行うことです。
今回の試作は、セルに1を表示させるのを下方向に30回繰り返して30個のセルに次から次へ1を入力させてみます。
こんな感じに
WS000001.JPG

繰り返し処理
通常変数を組み合わせて
For i = 1 To 30
変数iを使用したマクロ
Next i

という使いかたをします。
変数iに1から30を代入します。
まず、i=1にしたマクロを実行させてからNext iでi=2にしたマクロを実行しi=30まで続けます。

コーディング
Sub Macro1()

'マクロを実行するシートを選択
Worksheets("Sheet1").Select

'iを変数に設定
Dim i

'iが1から30まで繰り返す
For i = 1 To 30

'A列i行目のセルに1を入力
Cells(i, 1) = 1

'次のiを実行
Next i


End Sub



こんな感じです。
WS000000.JPG

マクロの実行結果
マクロを実行するとこうなります。
WS000001.JPG
サンプルExcelファイル:20191006_繰返し処理.zip


この繰り返し処理は処理の流れの「7. 4〜6を繰り返し」で使います。

多くのマクロの使用目的は同じ処理を何回も繰り返すのが面倒だからマクロで自動化するって言うのが多いのでこのFor〜Nextはとても使用頻度の高いVBAです。



前のページ:シートを印刷させてみた
次のページ:最終行を取得する試作

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


さて、貴方はこの電卓を使いこなすことができますか!?
まるで、挑戦状を叩きつけられているようだ!


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

この広告は180日以上新しい記事の投稿がないブログに表示されております。