2020年01月13日

列の範囲名を自動で設定する / 数式 / Excel

Excelでは選択範囲に名前(範囲名)をつけて、それを数式や関数等で使用することが出来ますが、列(だけではないですけど)のデータに簡単に範囲名を付ける方法があるので、やってみます。
20200112-00.jpg

さて、こんな試験の結果を集計した表があります。
20200112-09.JPG

この表の範囲を選択します。
20200112-10.JPG

そこで、「数式」から「選択範囲から作成」を選択します。
20200112-11.JPG

「選択範囲から名前を作成」の画面が開きます。
「上端行」にチェックをいれてOKします。
「上端行」と言うのは、一番上の行つまりこの表では“氏名”、“国語”、“数学”の列の見出しになりますので、これにチェックすると言うことは、それぞれの列に範囲名が設定されることになります。
「左端列」にすると各行に氏名が範囲名に設定されます。
20200112-12.JPG

すると、この様に“氏名”、“国語”、“数学”の範囲名が出来ているのがわかります。
20200112-13.JPG

国語の範囲
20200112-14.JPG

数学の範囲
20200112-01.JPG

では、この範囲名を活用してみましょう
国語と数学の平均点をAVERAGE関数で求めてみましょう。
20200112-02.JPG

“=AVERAGE(国語)”と入力します。
通常は平均値を求める範囲(C3:C52)を指定しますが、代わりに範囲名で設定できます。
20200112-03.JPG

と、国語の平均点が“63点”と表示されます。
同様に数学の平均を求めます。
20200112-04.JPG

今度は、“数学”を手入力しないで登録してある範囲名から選択してみます。
「数式」の「数式で使用」から「数学」を選択します。
20200112-05.JPG

と、数式に“数学”が入力されました。
20200112-06.JPG

で、国語と数学の平均点が範囲名で計算できました。
20200112-07.JPG

で、この平均点が計算されているセルを右下の方へコピーペーストしてみます。
普通にセルの範囲指定で計算している場合は、セルの範囲を絶対範囲に指定していないと、移動した分だけ参照範囲も移動してしまい正しい結果が表示されなくなってしまいますが、範囲指定ならそんな心配も不要です。
20200112-08.JPG


関連ページ





ラベル:範囲名
posted by haku1569 at 12:06| Excel一般 | このブログの読者になる | 更新情報をチェックする

2019年10月30日

Debug.Printの便利な使い方 / Excel / VBA

マクロ作って入る時に変数にちゃんと値が格納されているかとか、いちいち確認したくなる時ってありますよね。そんな時は Debug.Print を使いましょう!
VBAをコーディングしているコードウィンドウの下のイミディエイトウィンドウに表示させることができてとても便利です。

例えば、ワークシートのあるセルに入力した値を、変数に格納しそれを Debug.Printを使ってイミディエイトウィンドウに表示させてみます。

サンプルコード

Sub macro1()

'変数a
Dim a

'aにセルA1の値を格納
a = Cells(1, 1).Value

'イミディエイトウィンドウに「a=」で変数aを表示
Debug.Print "a=" & a

End Sub


こんな感じです。
20191030_02.JPG

ここで、ワークシートのセルA1に"4"を入力します。
20191030_03.JPG

で、マクロを実行させると
イミディエイトウィンドウに“a=4”と表示されました
20191030_01.JPG

サンプルExcelファイル)debugprint.zip



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

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



 最近はradikoとか、インターネットでラジオ番組を聞けるようになったけど、ギガとか、バッテリーとか、気にせずに使いたいならやっぱリアルラジオでしょ!?




ラベル:Debug.Print
posted by haku1569 at 20:22| Excel VBA | このブログの読者になる | 更新情報をチェックする

2019年10月27日

一覧表から帳票を自動で印刷させる(完) / Excel / VBA

さて、色々な試作を行ってきましたが、これで一覧表(受注マスタ)から帳票(受注票)を印刷するマクロを完成させることが出来ます。

最終的に完成させるマクロを1回目と同じように言葉で表してみます。
関連する試作ページにリンクさせときますね。

  1. 受注マスタの受注票を印刷したいデータの「印刷」の列に“1”を入力する
  2. マクロを実行させます
  3. 受注票の印刷設定が完了しているか確認するメッセージボックスを表示する
  4. Excelのシートの最終行からデータ範囲の最後の行までジャンプしてその行番号を取得する
  5. 受注マスタのデータ範囲の一番最初の行に行きます
  6. 列「印刷」に“1”が入力されている場合は受注コードをシート受注票の受注コードに入力します。
  7. 受注票に受注コードが入力されるとVLOOKUP関数によって受注票が作成されます。
  8. 作った受注票を印刷します
  9. 次の行を見に行きます
  10. 6〜9をデータ範囲の最終行まで繰り返したら終了します。


受注マスタから受注票を印刷するマクロ

Sub 印刷準備確認()

'変数a
Dim a

'変数aにはい、いいえの質問メッセージボックスの押された結果を格納
a = MsgBox("プリンタの設定は完了していますか?", vbYesNo + vbQuestion + vbDefaultButton2, "確認")

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

'はいの場合
Case vbYes

'マクロ受注票印刷を実行する
Call 受注票印刷

'いいえの場合終了
Case vbNo

End Select


End Sub

―――――――――――――――――――――――――――――――――――――
Sub 受注票印刷()

'変数i、n、s
Dim i
Dim n
Dim s


'シート受注マスタを選択
Worksheets("受注マスタ").Select

'nにデータ範囲の最後の行番号を格納
n = Cells(Rows.Count, 1).End(xlUp).Row

'iが2からnまで繰り返し処理(データ範囲が2行目から)
For i = 2 To n

'列「印刷」が"1"の時
If Cells(i, 2) = 1 Then

'sに受注コードを格納
s = Cells(i, 1).Value

'シート"受注票"のセルB4にsを入力
Worksheets("受注票").Cells(4, 2) = s

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


End If

Next i

End Sub


とこんな感じになります。
20191027-01.JPG

20191027-04.JPG

印刷準備確認のメッセージボックスを表示させるマクロと受注票を印刷するマクロを分けていますが、同じモジュール(Module)に記入しています。
1つのモジュールに複数のマクロを記入すると自動的に線が引かれて区別されます
一連の処理を複数のマクロに分ける場合は1つのモジュールに記入した方が分かりやすいと思います。

受注マスタの列「印刷」に“1”を入力します。
20191027-03.JPG

と、この様な受注票が印刷されます。
20191027-02.JPG

サンプルExcelファイル)North Wind.zipで実際に実行させてみてください。
サンプルファイルの使い方ですが、
まず、受注票を実際に印刷させて(PDFで可)印刷設定を済ませておいてください。
マクロの実行のボタンとかは用意していません。マクロを表示させて「F5」キーを押すとか、ショートカットを設定するとか、原始的な方法で実行させてください。


前のページ:マクロを実行するマクロ
次のページ:

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




昔「デンスケ」と言われたカセットテープレコーダがあったのをご存じでしょうか?
所謂、録り鉄とか、ヒコーキの音とか野外の生録をするテープレコーダーです。
マイクもそれなりのをステレオなので2本用意しなければなりません。でもそんなんで録音した蒸気機関車の近づく迫力のサウンドは鳥肌もんでした。。。



そえが今ではマイクも一体化してこんなカッコになっちゃいました。
そう言えば、パーソナルユースで音だけってあまり記録されないよね、動画としては音も一緒に当然撮られてるけど、音だけって無いよね。
なんでだ?音楽は音だけで聞くし最近はASMRとして音を聞いたりってのもあるけど、写真や動画の様に身の回りの音だけを録音するってのはあまり無いねー。。。スマホにもICレコーダーついてるんだから、もっと音遊びできるアプリができてもいいんじゃねぇ?とか思う。




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

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