広告

【プログラミング入門】【VBA】6日目 入力してみよう!(InputBox)

2022.10.10更新

ExcelVBAでプログラミング入門のタイトル画像になります

お仕事などでお馴染みの表計算ソフト、エクセルに付属しているExcelVBA(エクセルブイビーエー)というプログラミング言語を使って初心者・入門者向けにプログラミングのキホンを解説していきます!

ExcelVBAができるようになれば業務内容によってはボタン一つで大幅な業務効率化ができる他に、普段のエクセルの使い方も段違いにレベルアップする事ができます!

ベテランの方も新人さんも興味のある方はぜひ挑戦してみてください!

入力(InputBox)命令

お待たせしました!入力のお時間です!

コントローラーのボタンを押すとゲームの中の主人公がジャンプしたりするように、少しだけアナタの思い通りにコンピューターを動かしてみましょう!

数字を受け取って表示

■6日目 プログラム1■


'6日目 プログラム1

Sub test()

	Dim age As Integer

	age = InputBox("あなたの年齢を教えてください")

	MsgBox "あなたは" & age & "才ですね!"

End Sub

■実行結果■

VBAにおける入力の基礎「InputBox」の説明画像1

■説明■

いくつかある入力命令の中から「InputBox(インプットボックス)」命令を紹介します。

この命令は「MsgBox」命令のようなウィンドウを表示してそこに入力をしてもらう命令になります。

上のプログラムでは


age = InputBox("あなたの年齢を教えてください")

こちらで変数「age」に初期化もかねて「InputBox」命令を使って年齢を入力してもらっております。

InputBox("")の中に入力ウィンドウ内に表示する題名を入れる事ができます。

「Dim age As Integer」と数値型で変数を宣言しているので文字などを入力すると「型の不一致」というエラーになります。

文章を受け取って表示

■6日目 プログラム2■


'6日目 プログラム2

Sub test()

	Dim name As String
	Dim age As Integer

	name = InputBox("あなたの名前を教えてください")
	age = InputBox("あなたの年齢を教えてください")

	MsgBox name & vbCrLf & age & "才ですね!"

End Sub

■実行結果■

VBAにおける入力の基礎「InputBox」の説明画像2

■説明■

もちろん文章も受け取る事ができます。

初期値を入れる

入力ウィンドウ内の初期値(最初から入っている値)も入れる事ができます。

■6日目 プログラム3■


'6日目 プログラム3

Sub test()

	Dim name As String
	Dim age As Integer

	name = InputBox("あなたの名前を教えてください",Default:="山田 太郎")
	age = InputBox("あなたの年齢を教えてください",Default:="20")

	MsgBox name & vbCrLf & age & "才ですね!"

End Sub

■実行結果■

VBAにおける入力の基礎「InputBox」の説明画像3

■説明■

「題名」の次に「,Default:="初期値"」と続けて初期値を入れる事もできます。

広告

マイ計算機

計算機ってほどでもないですが、前回までの復習もかねて入力した2つの数字の計算結果を表示するというプログラムを作ってみましょう!

プログラムが長いのでカッコの閉じ忘れなどに気をつけながらゆっくりプログラミングしてください。

■6日目 プログラム4■


'6日目 プログラム4

Sub test()

	Dim suji As Integer
	Dim suji2 As Integer

	MsgBox "2つの数字を計算します!"

	suji = InputBox("ひとつ目の数字を入力")
	suji2 = InputBox("ふたつ目の数字を入力")

	MsgBox "1つ目の数字 : " & suji & vbCrLf & _ 
			"2つ目の数字 : " & suji2 & vbCrLf & _ 
			"suji + suji2 = " & (suji + suji2)

	MsgBox "1つ目の数字 : " & suji & vbCrLf & _ 
			"2つ目の数字 : " & suji2 & vbCrLf & _ 
			"suji - suji2 = " & (suji - suji2)

	MsgBox "1つ目の数字 : " & suji & vbCrLf & _ 
			"2つ目の数字 : " & suji2 & vbCrLf & _ 
			"suji × suji2 = " & (suji * suji2)

	MsgBox "1つ目の数字 : " & suji & vbCrLf & _ 
			"2つ目の数字 : " & suji2 & vbCrLf & _ 
			"suji ÷ suji2 = " & (suji / suji2)

End Sub

■実行結果■

VBAにおける入力の基礎「InputBox」の説明画像4

■説明■

2つの数を順番に入力してもらって計算するプログラムです。

途中の「_」アンダーバーはプログラムを折り返す為の接続記号です。

忘れちゃったという方は「3日目 実行ボタンとプログラムの書き方」をご覧ください。

少し長いプログラムですが今までやってきた事を合わせただけなので特に難しくはなかったと思います。

入力フォームを作る

それでは最後にエクセルで作った表の必要な場所に入力を促す簡単な入力フォームを作ってみましょう。

VBA,InputBoxを使った入力フォームの説明画像1

この表の数量欄に入力をしてもらうようにします。

■6日目 プログラム5■


'6日目 プログラム5

Sub nyuuryoku()

	Dim suji As Integer

	suji = InputBox("りんごの数量を入力してください",XPos:=0,YPos:=0)
	Worksheets("sheet1").Range("B3").Value = suji

	suji = InputBox("ばななの数量を入力してください",XPos:=0,YPos:=0)
	Worksheets("sheet1").Range("B4").Value = suji

	suji = InputBox("みかんの数量を入力してください",XPos:=0,YPos:=0)
	Worksheets("sheet1").Range("B5").Value = suji

	suji = InputBox("いちごの数量を入力してください",XPos:=0,YPos:=0)
	Worksheets("sheet1").Range("B6").Value = suji

End Sub

■実行結果■

VBA,InputBoxを使った入力フォームの説明画像2

■説明■

「InputBox」命令と「Range」命令を組み合わせれば簡単な入力フォームが作れますね!

これで必要な項目への入力を促す事ができます。

※入力された値のチェック方法は次回説明します!

一回一回「Range」命令を使って結果をエクセル上に書き込んでますので変数は「suji」のみで使い回して大丈夫です。

「InputBox」命令後半の「XPos:=0,YPos:=0」というのは「InputBox」の座標を「XPos:=横位置,YPos:=縦位置」で指定できるものです。

表と重ならないように「InputBox」のウィンドウを表示する時などに使います。

それでは次回いろいろな条件でプログラムを枝分かれさせていきます。

次回

7日目 If(もし~だったら)

広告

Copyright 2016 K.N/petitetech.com