Excel VBA質問箱 IV

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

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


7398 / 13644 ツリー ←次へ | 前へ→

【39386】コードを省略したい パート2 初心者 06/6/23(金) 9:23 質問[未読]
【39388】Re:コードを省略したい パート2 Statis 06/6/23(金) 9:36 回答[未読]
【39392】Re:コードを省略したい パート2 初心者 06/6/23(金) 10:07 発言[未読]
【39394】Re:コードを省略したい パート2 Statis 06/6/23(金) 10:25 回答[未読]
【39396】Re:コードを省略したい パート2 初心者 06/6/23(金) 10:39 お礼[未読]

【39386】コードを省略したい パート2
質問  初心者  - 06/6/23(金) 9:23 -

引用なし
パスワード
   おはようございます。

optionbuttonを使いコードを下記(以前)のように作成していましたが、
皆様のご指導で(現在)のようにコードを省略することができました。
本当にありがとうございます。
ここで、オプションボタンが2つで1グループ、3つで1グループというのが
複数あるのですが、これ以上の省略は可能ですか?
超初心者の為、まだまだ理解できていません・・・。
よろしくお願いします。

’以前
 If OptionButton14 = True Then
   Worksheets(MyS).Range("AZ69").Value = "1"
  ElseIf OptionButton15 = True Then
   Worksheets(MyS).Range("AZ69").Value = "2"
 End If

 If OptionButton16 = True Then
   Worksheets(MyS).Range("BA69").Value = "1"
  ElseIf OptionButton17 = True Then
   Worksheets(MyS).Range("BA69").Value = "2"
 End If


’現在
 For i = 14 To 15
   If Me.OLEObjects("OptionButton" & i).Object = True Then
   Worksheets(MyS).Range("AZ69").Value = i - 13
   End If
 Next

 For i = 16 To 17
   If Me.OLEObjects("OptionButton" & i).Object = True Then
  Worksheets(MyS).Range("BA69").Value = i - 15
  End If
Next

【39388】Re:コードを省略したい パート2
回答  Statis  - 06/6/23(金) 9:36 -

引用なし
パスワード
   こんにちは

こんな感じです。


Dim i As Long, Co As Long, Cou As Long
For i = 14 To 17
  Select Case i
      Case 14 To 15: Cou = 13: Co = 52
      Case 16 To 17: Cou = 15: Co = 53
  End Select
  If Me.OLEObjects("OptionButton" & i).Object = True Then
    Worksheets(MyS).Cells(69, Co).Value = i - Cou
  End If
Next i

【39392】Re:コードを省略したい パート2
発言  初心者  - 06/6/23(金) 10:07 -

引用なし
パスワード
   ▼Statis さん:
>こんにちは
>
>こんな感じです。
>
>
>Dim i As Long, Co As Long, Cou As Long
>For i = 14 To 17
>  Select Case i
>      Case 14 To 15: Cou = 13: Co = 52
>      Case 16 To 17: Cou = 15: Co = 53
>  End Select
>  If Me.OLEObjects("OptionButton" & i).Object = True Then
>    Worksheets(MyS).Cells(69, Co).Value = i - Cou
>  End If
>Next i

 早々の回答大変ありがとうございます。
 できればコードの意味を記入していただければ大変助かります。
 せっかく回答していただいた上に無理言ってすみません・・・。

【39394】Re:コードを省略したい パート2
回答  Statis  - 06/6/23(金) 10:25 -

引用なし
パスワード
   こんにちは

下記の部分のみ説明しときます。(他は以前説明したと思いますので)

'ケースにてオプションボタンのNoにて入力値と列を設定
  Select Case i
     'No14〜15の場合、入力値はiの変数から-13するため
     '「Cun」に「13」をセット、入力列がAZ列なので「Co」に「52」をセット
      Case 14 To 15: Cou = 13: Co = 52
      Case 16 To 17: Cou = 15: Co = 53
  End Select

【39396】Re:コードを省略したい パート2
お礼  初心者  - 06/6/23(金) 10:39 -

引用なし
パスワード
   ▼Statis さん:
>こんにちは
>
>下記の部分のみ説明しときます。(他は以前説明したと思いますので)
>
>'ケースにてオプションボタンのNoにて入力値と列を設定
>  Select Case i
>     'No14〜15の場合、入力値はiの変数から-13するため
>     '「Cun」に「13」をセット、入力列がAZ列なので「Co」に「52」をセット
>      Case 14 To 15: Cou = 13: Co = 52
>      Case 16 To 17: Cou = 15: Co = 53
>  End Select

なるほど、ありがとうございました。

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