Excel VBA質問箱 IV

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

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


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

【44734】これを簡単にするには 新米T 06/11/30(木) 15:14 質問[未読]
【44736】Re:これを簡単にするには Jaka 06/11/30(木) 15:31 発言[未読]
【44742】Re:これを簡単にするには 新米T 06/11/30(木) 16:01 お礼[未読]
【44740】Re:これを簡単にするには neptune 06/11/30(木) 15:48 回答[未読]
【44747】Re:これを簡単にするには 新米T 06/11/30(木) 16:28 お礼[未読]
【44754】Re:これを簡単にするには 新米T 06/11/30(木) 17:36 質問[未読]
【44771】Re:これを簡単にするには neptune 06/11/30(木) 23:14 発言[未読]
【44813】Re:これを簡単にするには 新米T 06/12/1(金) 20:53 お礼[未読]

【44734】これを簡単にするには
質問  新米T  - 06/11/30(木) 15:14 -

引用なし
パスワード
   最近VBAをはじめた新米です。
下記のような同じ命令文を簡単にするにはどうしたらよいでしょうか。
基本的な質問で申し訳ありませんが教えて下さい。よろしくお願いします。

Sub データクリア()        'データクリア

  OptionButton1.Value = True   
  OptionButton9.Value = ""   
 
  ComboBox2.Value = "" 
  ComboBox3.Value = ""   
  ComboBox4.Value = ""   
  ComboBox6.Value = ""  
 
  −省略−

  TextBox2.Value = ""   
  TextBox3.Value = ""   
  TextBox4.Value = ""   
  TextBox5.Value = ""   
  TextBox6.Value = ""   
  TextBox7.Value = ""   
  TextBox194.Value = ""
  TextBox195.Value = ""
  TextBox196.Value = ""

End Sub

【44736】Re:これを簡単にするには
発言  Jaka  - 06/11/30(木) 15:31 -

引用なし
パスワード
   オブジェクトの種類が書いてないから適当に書くと、こんなのとか。

For i = 1 To 5
  Me.Controls("TextBox" & i).Value = ""
Next

【44740】Re:これを簡単にするには
回答  neptune  - 06/11/30(木) 15:48 -

引用なし
パスワード
   ▼新米T さん:
こんにちは

先ず、どのような環境、O/Sかは判りませんが、このような沢山のコントロール
の使用を止めるべきです。
いつ、Bookがこけても良いよと言う覚悟なら良いですけど。
目いっぱいリソース食っているはずですから、
Windowsと勝負しているようなもんです。


沢山のコントロールを扱う手法はいくつかありますが、
""を代入するだけならfor each が楽と思います。
べた書きで間違いがあるかもしれませんが、こんな感じです。
dim obj as object

for each obj in Me.controls
  if typename(obj)="TextBox" then
   obj.value=""
  end if
next

これでTextBoxに""が代入されます。

後は、UserFormオブジェクトのControlsコレクションのAddメソッドのHelpに
コントロールの名前が書かれていますから参考にしてください。

※重ねて言いますが、仕様を見直すことを強くお勧めします。

【44742】Re:これを簡単にするには
お礼  新米T  - 06/11/30(木) 16:01 -

引用なし
パスワード
   Jaka さんneptuneさんご回答ありがとうございます。
仰せの通り、今日あまりも重いためエクセルが勝手に落ち、保存してあったBOOKまで消されていました。何とか、簡単にしようと思って質問しました。
JAkaさんの命令文を入れると「指定されたオブジェクトが見つかりません」と出てしまいます。
何とかがんばってみます。

【44747】Re:これを簡単にするには
お礼  新米T  - 06/11/30(木) 16:28 -

引用なし
パスワード
   ありがとうございました。
この命令文でうまく動かせました。
しかし、保存しようとしたところまた、落ちてしまい。
再度、全部仕様を見直そうと思います。

【44754】Re:これを簡単にするには
質問  新米T  - 06/11/30(木) 17:36 -

引用なし
パスワード
   もうひとつ、お尋ねしたいのですが、同じ命令文にComboBoxも同じように簡略化したいのですが。
どうやったらいいでしょうか。

【44771】Re:これを簡単にするには
発言  neptune  - 06/11/30(木) 23:14 -

引用なし
パスワード
   ▼新米T さん:
こんにちは
>もうひとつ、お尋ねしたいのですが、同じ命令文にComboBoxも同じように簡略化したいのですが。
>どうやったらいいでしょうか。
どの命令文ですか?

【44813】Re:これを簡単にするには
お礼  新米T  - 06/12/1(金) 20:53 -

引用なし
パスワード
   ▼neptune さん
2つ目の質問の件は、最初に教えていただいたものを2つ作って解決しました。
返事が遅くなり申し訳ございませんでした。

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