ヒガサラblog

サラリーマン向けに、仕事を効率良く進めていくための方法についてご紹介しています。プログラミングから対人スキルまでを幅広く掲載中。

ヒガサラblog

【VBA】セルへの入力作業を効率化!InputBoxの使用例紹介!

f:id:yshgs_elec:20201007230314j:plain

顧客情報などをエクセルのテンプレートファイルに入力していく、という作業を頻繁に行っている人は多いのではないでしょうか?

 

そんなとき、セルの場所が飛び飛びだったりすると、毎回マウスで入力場所を指定する必要があり、非常に面倒ですよね。

また、性別入力などの入力される情報が限られている状況なんかでも、毎回男性、女性などと打ち込んで、時間を浪費してしまってはいませんか?

 

この記事では、これらの面倒な作業をVBAを使って効率化する方法についてご紹介します。

初心者向けに画像多めで解説していきますので、ぜひ最後までご覧ください。

 

それではさっそくやっていきます!

 

はじめに

この記事では以下の画像に示しているような情報シートを効率的に埋めていく方法についてご紹介していきます。

(こんな風に入力セルが飛び飛びで配置されていると非常に面倒ですよね。)

f:id:yshgs_elec:20201007221636j:plain

 

これを実現するためには、エクセルに標準的に搭載されているマクロ機能(VBA)を使う必要があります。

マクロ(VBA)を使ったことがないという方は、まずは以下の記事を参考にマクロが使える状態にしておきましょう。

www.higashisalary.com

 

準備が整ったら、さっそく本題に入っていきましょう!

 

VBAでの情報入力スキル:InputBoxについて

 基本的に先ほど紹介したエクセルシートを効率的に埋めていくには、セルの選択や、入力時間を短縮していくことが必要ですよね。

 今回はそれらを実現するためにInputBoxというスキルを使います。

 

このInputBoxでは、文字を入力するという行為自体は必要ですが、その入力された文字をどのセルに入力するかは事前に決めておくことができます。

そのため、入力する前にセルをわざわざ毎回選択するという作業が必要なくなります。

 

また、住所なんかは顧客が地元の人ばかりなのであれば、当然入力する住所も似たようなものになります。

そのため、予想される住所をあらかじめ候補として入力しておくことも可能です。

そうすればわざわざ毎回打ち込む作業を低減できますからね。

 

この記事ではこういった使い方を想定して処理を記述していますので、ぜひ参考にしてみてください。

 

 

InputBoxの使い方

基本的には以下のように使用します。

***=InputBox("質問の内容", Default:="想定される情報")

 

***は変数であったり、実際のセルの場所を指定すればOKです。

また、後半の【,Default】以降は想定されるものがない場合は省略可能です。

 

とはいえ、これだけではよくわからないと思いますので、ここからは実際の使用例を見ていきましょう。

 

InputBoxの使用例

 先ほども紹介したように今回は以下の情報シートを埋めていきます。

f:id:yshgs_elec:20201007221636j:plain

 

これらを効率良く埋めていくために、今回は以下のVBAコードを記述しました。

(あなたも実際にエクセルを開いて実行してみましょう。) 

 

 

Sub input_box()
'名前の入力
Cells(3, 1) = InputBox("名前を入力してください")

'年齢の入力
Cells(3, 3) = InputBox("名前を入力してください", Default:="30")

'性別の入力
seibetsu = InputBox("性別を入力してください(1=男性, 2=女性)", Default:="1")
If seibetsu = 1 Then
Cells(3, 5) = "男性"
Else
Cells(3, 5) = "女性"
End If

'住所の入力
Cells(5, 1) = InputBox("名前を入力してください", Default:="東京都千代田区")

'電話番号の入力
Cells(7, 1) = InputBox("名前を入力してください", Default:="090-")
End Sub

 

 

 ひとつひとつ解説していきます。

 まずは名前の部分。

ここでは以下のような入力ボックスが表示されます。

f:id:yshgs_elec:20201007224219j:plain

ここは想定されるものもなく、素直に打ち込むしかありませんよね。

ですので、シンプルに質問だけが表示されるようになっています。

 

次に年齢。

ここでは以下のような入力ボックスが表示されます。

f:id:yshgs_elec:20201007224332j:plain

ひとまず30としていますが、ここはあなたの顧客の年齢層から適切なものを入れたらOKです。まったく顧客の年齢の傾向がない場合は、先ほどの名前のときのように、Default設定は廃止しておいても良いですね。

 

次に性別。

ここでは以下のような入力ボックスが表示されます。

f:id:yshgs_elec:20201007224518j:plain

このような項目の場合、選択肢が限られると思います。

決まりきった回答しかないのであれば、このように選択性にしておいた方が、わざわざ毎回入力する必要がありません。

VBAコードは少し難しいことをしているように見えるかもしれませんが、基本的には入力された値が1だったらE3セルには男性、2だったら女性、と記入するような指示をおこなっているだけです。

ここは非常に効率化できる部分だと思いますので、頑張って機能するようにしておきましょう。

 

次に住所。

ここでは以下のような入力ボックスが表示されます。

f:id:yshgs_elec:20201007224901j:plain

このように頻繁に入力する住所の途中までをDefaultで設定してあげておくことで、入力の一部を効率化できます。

ぜひあなたの顧客にマッチした住所を設定しておきましょう。

 

最後に電話番号。

ここでは以下のような入力ボックスが表示されます。

f:id:yshgs_elec:20201007225126j:plain

ここも先ほどの住所と同じで、想定される多そうな回答を途中まで記入している形ですね。

 

これらを実際に入力していった結果、以下のようにしっかりと各セルに情報が入力されています。

f:id:yshgs_elec:20201007224502j:plain

 

基本的に今回紹介したコードはこのシートに適した形で記述していますので、あなたが使っているテンプレートファイルに合わせて、VBAコードを変更していきましょう。

基本的にCells(*,*)が理解できていれば簡単に修正できるはずです。

cells(*,*)の使い方を知りたい方は以下の記事を参考にしてください。

www.higashisalary.com

 

終わりに

 というわけで今回は情報の入力作業を効率化するためのVBAでのInputBoxの使用例についてご紹介しました。

ぜひこのスキルをマスターし、日々の業務を効率化していきましょう!

 

このように、このブログでは、エクセル(VBA)を中心に、様々な業務効率化スキルを紹介しています。

■業務の生産性を上げたい。

■早く帰って子供と遊びたい。

こんな人はぜひ他の記事も読んでみてください。

 

また、VBAを使ってこんなことがしたいんだけど、やり方がわからない、という悩みを抱えているかたは、お気軽にコメント欄から質問してください。

私にわかる範囲であればご協力いたしますので。(もちろん無料です。)

 

最後に・・・

このブログを応援してあげても良いよ、という方は以下のボタンをポチっていただけると嬉しいです。

にほんブログ村 IT技術ブログ VBAへ
にほんブログ村

にほんブログ村 IT技術ブログへ
にほんブログ村

 

Twitterもやっていますので、興味があれば覗いてみてください。

それではまた!!

 

 オススメ記事

www.higashisalary.com