Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2757 / 13645 ツリー ←次へ | 前へ→

【66132】コンボボックスの選択後の処理について めぐたん 10/8/3(火) 16:22 質問[未読]
【66135】Re:コンボボックスの選択後の処理について UO3 10/8/3(火) 17:12 回答[未読]
【66137】Re:コンボボックスの選択後の処理について めぐたん 10/8/3(火) 17:26 お礼[未読]
【66138】Re:コンボボックスの選択後の処理について neptune 10/8/3(火) 18:47 発言[未読]

【66132】コンボボックスの選択後の処理について
質問  めぐたん  - 10/8/3(火) 16:22 -

引用なし
パスワード
   このようなマクロを作ってみて、きちんと稼働したのですが、
とても長すぎるので、短くすることはできますでしょうか?
未熟者ですので、教えてください。
(今は3つ分しか載せていませんが、実際は8つあります。)

Private Sub CommandButton1_Click()
  If (ComboBox1 = "MB") Then
  n = 6
  Do
    n = n + 1
  Loop While Cells(n, 1) <> ""
  Cells(n, 1) = UserForm1.TextBox1.Text
  Unload Me
  End If
  
  If (ComboBox1 = "BK") Then
  n = 6
  Do
    n = n + 1
  Loop While Cells(n, 2) <> ""
  Cells(n, 2) = UserForm1.TextBox1.Text
  Unload Me
  End If
  
  If (ComboBox1 = "2B") Then
  n = 6
  Do
    n = n + 1
  Loop While Cells(n, 3) <> ""
  Cells(n, 3) = UserForm1.TextBox1.Text
  Unload Me
  End If
End Sub

【66135】Re:コンボボックスの選択後の処理について
回答  UO3  - 10/8/3(火) 17:12 -

引用なし
パスワード
   ▼めぐたん さん:

こんにちは
短くするなら

Private Sub CommandButton1_Click()
Dim x As Long
 Select Case ComboBox1.Value
  Case "MB": x = 1
  Case "BK": x = 2
  Case "2B": x = 3
 End Select
 If x <> 0 Then Cells(6, x).End(xlDown).Offset(1).Value = TextBox1.Text
 Unload Me
End Sub

【66137】Re:コンボボックスの選択後の処理について
お礼  めぐたん  - 10/8/3(火) 17:26 -

引用なし
パスワード
   ▼UO3 さん:

早速試してみたところ、ばっちりでした!

本当にありがとうございました。

【66138】Re:コンボボックスの選択後の処理について
発言  neptune  - 10/8/3(火) 18:47 -

引用なし
パスワード
   ▼めぐたん さん:
もう解決したようですが、
短くする事より、見やすいプログラムの書き方をしましょう。
スキルが上がっていけば知らない内に短い書き方になってきます。

1.インデントはきちっとつける
2.既定のプロパティも省略しない。

半年後の自分の為になります。

2757 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free