私は仕事に関して便利にしようと思う時にExcelなどを使用して簡易ソフトを作ります。
ただ、哀しいことに私はVBAに関しては、かじり程度の知識しかありませんが、
それでも、こうしたいと思ったことがあればとことん調べつくします。
実は今回もこの根性で、一つの簡易ソフトをさらに便利に手直し出来ましたのでご紹介したいと思います。
例えば、左の図のように借方科目の部分に「売掛金」と入力したら
貸方科目の部分に「売上高」と入力するわけですが・・・
もしも、「売掛金」と入力した時に
貸方科目に自動的に「売上高」と表示されたとしたら
どんなに便利かと常々考えておりました。
セルに関数を・・・とも考えてみたのですが、これだと、お決まりじゃない言葉を入れる場合に関数を消してしまうことになります。
下記に書いた方法であれば、借方と貸方がお決まりのものでなければ削除して、新たに入力しても問題はありません。
ただ、哀しいことに私はVBAに関しては、かじり程度の知識しかありませんが、
それでも、こうしたいと思ったことがあればとことん調べつくします。
実は今回もこの根性で、一つの簡易ソフトをさらに便利に手直し出来ましたのでご紹介したいと思います。
例えば、左の図のように借方科目の部分に「売掛金」と入力したら
貸方科目の部分に「売上高」と入力するわけですが・・・
もしも、「売掛金」と入力した時に
貸方科目に自動的に「売上高」と表示されたとしたら
どんなに便利かと常々考えておりました。
セルに関数を・・・とも考えてみたのですが、これだと、お決まりじゃない言葉を入れる場合に関数を消してしまうことになります。
下記に書いた方法であれば、借方と貸方がお決まりのものでなければ削除して、新たに入力しても問題はありません。
先ず、表などを作ってあるExcelを開きます。
①リボンの「開発」タブをクリックします。
※開発タブが表示されてない方はスピンボタンの設定方法を見て表示させてください。
⇒
②左端にある「Visual Basic」をクリック
Visual Basicの画面が開きます
⇒
左側の上「VBAProject」のSheet1(シート名を付けていればシート名)をダブルクリックします- 下の画面に変わりますので
⇒
(General)と出ている窓枠の「▼」をクリック
⇒
「Worksheet」を選択します
⇒
下の画面が開きます
- 開いた画面はそのままで、横にある窓枠の「▼」をクリック
⇒
メニューの中から「Change」を選択します
⇒
すると、下の画面が開きます
赤枠の箇所を拡大すると下のようになっていますPrivate Sub Worksheet_Change(ByVal Target As Range)
(この間に、動作させるプログラムを書き込みます)
End Sub
赤枠の中のプロフラムを拡大すると下のようになってます
※このプログラムは私の振替伝票のプログラムです。
On Error GoTo ext1
If Target.Column = 6 Then
If Target = "" Then
r = Target.Row
Cells(r, "K") = ""
Else
r = Target.Row
Cells(r, "K") = WorksheetFunction.VLookup(Target, Range("Q1:R20"), 2, False)
End If
End If
ext1:- Target.column=6 入力列は6列目
- Cells(r, "K") 自動入力するセルはK列
- Vlookup関数で検索する範囲はQ1:R20 この範囲に必要なデータを記入しています
- これで入力してみたらK列に自動入力されました。
私の場合、ミスなく動作をしてくれたらそれでいいので、間違っている部分があるのかも知れませんが今のところミスはありません。
※コメント投稿者のブログIDはブログ作成者のみに通知されます