Excel VBA質問箱 IV

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

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


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

【51332】オブジェクト名が変化して処理は変わらないときの アルジ 07/9/12(水) 14:08 質問[未読]
【51333】Re:オブジェクト名が変化して処理は変わら... アルジ 07/9/12(水) 14:17 発言[未読]
【51335】Re:オブジェクト名が変化して処理は変わら... Jaka 07/9/12(水) 14:44 発言[未読]
【51337】Re:オブジェクト名が変化して処理は変わら... アルジ 07/9/12(水) 16:12 発言[未読]
【51341】Re:オブジェクト名が変化して処理は変わら... Jaka 07/9/12(水) 17:22 発言[未読]
【51342】Re:オブジェクト名が変化して処理は変わら... アルジ 07/9/12(水) 17:27 発言[未読]
【51359】紛らわしい事をしてすみません。 Jaka 07/9/13(木) 9:24 発言[未読]
【51362】Re:紛らわしい事をしてすみません。 アルジ 07/9/13(木) 10:37 お礼[未読]
【51343】Re:オブジェクト名が変化して処理は変わら... ichi 07/9/12(水) 17:59 発言[未読]
【51344】Re:オブジェクト名が変化して処理は変わら... アルジ 07/9/12(水) 18:03 お礼[未読]

【51332】オブジェクト名が変化して処理は変わらな...
質問  アルジ  - 07/9/12(水) 14:08 -

引用なし
パスワード
   はじめまして、アルジといいます。

オブジェクト名が変化して処理は変わらないときの
書き方がわかりません。
いまだと下記のような例を30個も書かないといけない状態です。
しかもこういったものが頻繁に必要になってきました。


変わるところは s1〜s30までと c1〜c30まで
変化します。 s1のときはc1になります。
いろいろ調べた結果オブジェクトの変数化や
引数のやり取りで出来そうな気がしましたが、
具体的な方法がどうしてもわかりません。

いい方法があれば教えてください。


Private Sub s1_SpinUp()
    
If c1.Text <> "" Then
    c1.Text = DateAdd("n", -30, c1.Text)
    c1.Text = Format(c1.Text, "h:nn:ss")
End If

End Sub

【51333】Re:オブジェクト名が変化して処理は変わ...
発言  アルジ  - 07/9/12(水) 14:17 -

引用なし
パスワード
   >はじめまして、アルジといいます。
>
>オブジェクト名が変化して処理は変わらないときの
>書き方がわかりません。
>いまだと下記のような例を30個も書かないといけない状態です。
>しかもこういったものが頻繁に必要になってきました。
>
>
>変わるところは s1〜s30までと c1〜c30まで
>変化します。 s1のときはc1になります。
>いろいろ調べた結果オブジェクトの変数化や
>引数のやり取りで出来そうな気がしましたが、
>具体的な方法がどうしてもわかりません。
>
>いい方法があれば教えてください。
>
>
>Private Sub s1_SpinUp()
>    
>If c1.Text <> "" Then
>    c1.Text = DateAdd("n", -30, c1.Text)
>    c1.Text = Format(c1.Text, "h:nn:ss")
>End If
>
>End Sub

すいません、情報に不備がありました。
エクセル2000使用
ユーザーフォームにて処理を行っています。
ここでいうs1はスピンでc1はテキストボックスです。
実はa〜oまであり処理により組み合わせで使います。
その中にはラベルやチェックボックスもあります。
目的はソースの簡略化です。

【51335】Re:オブジェクト名が変化して処理は変わ...
発言  Jaka  - 07/9/12(水) 14:44 -

引用なし
パスワード
   Me.Controls (" で検索してみました。

 全角ですから半角英数字に直してください。
  ↓
HTTP://www.vbalab.net/vbaqa/c-board.cgi?word=Me.Controls+%28%22&way=0&target=all&view=0&id=excel&cmd=src&x=35&y=7

【51337】Re:オブジェクト名が変化して処理は変わ...
発言  アルジ  - 07/9/12(水) 16:12 -

引用なし
パスワード
   Jaka さん返信ありがとうございました
リンク先を見させていただきました。
しかし、少しやりたいことと違うみたいでした。
自分の説明がへたですいませんでした。

やりたいことは

Private Sub s1_SpinUp()
      ↑
ここのs1とこのイベントの中のc1をs2c2、s3c3としていきたいのです。
  ↓    
If c1.Text <> "" Then
    c1.Text = DateAdd("n", -30, c1.Text)
    c1.Text = Format(c1.Text, "h:nn:ss")
End If
End Sub

今は下記のようなソースになってしまっています。

Private Sub s1_SpinUp()
If c1.Text <> "" Then
    c1.Text = DateAdd("n", -30, c1.Text)
    c1.Text = Format(c1.Text, "h:nn:ss")
End If
End SubPrivate Sub s2_SpinUp()
If c2.Text <> "" Then
    c2.Text = DateAdd("n", -30, c2.Text)
    c2.Text = Format(c2.Text, "h:nn:ss")
End If
End Sub




最終的には
Private Sub s(i)_SpinUp()
If c(i)..Text <> "" Then
    c(i).Text = DateAdd("n", -30, c(i).Text)
    c(i).Text = Format(c(i).Text, "h:nn:ss")
End If
見たいにしたいです。

長くなってしまってすいませんが、
ご教授お願いします。

【51341】Re:オブジェクト名が変化して処理は変わ...
発言  Jaka  - 07/9/12(水) 17:22 -

引用なし
パスワード
   >オブジェクト名が変化して処理は変わらない
こういうのもありますけど。
どれがどれに当たるのかまでの判断はできないと思います。

【137】複数のコントロールのイベントを取得する
HTTP://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=137;id=FAQ

他、クラスで検索してみました。
HTTP://www.vbalab.net/vbaqa/c-board.cgi?word=%83N%83%89%83X&way=0&target=all&view=0&id=excel&cmd=src

【51342】Re:オブジェクト名が変化して処理は変わ...
発言  アルジ  - 07/9/12(水) 17:27 -

引用なし
パスワード
   今Jakaさんから返信があったように思われますが
私の手違いか何かで消えてしまいました。すいません。

消えた返信への質問ですが
(HTTP://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=61;id=FAQ)

私がステップインで確認して解釈したところ、

1.標準モジュールに書いたプロシージャを配列(TB)に入れる
2.コンボボックスに配列を表示させ選ばせる
3.選ばれたプロシージャを実行

標準モジュールに一回すべて書かないといけないような気がします。
私の解釈が間違っていましたらお手数ですが、指摘をお願いします。

【51343】Re:オブジェクト名が変化して処理は変わ...
発言  ichi  - 07/9/12(水) 17:59 -

引用なし
パスワード
   ▼アルジ さん:
こんにちわ

>最終的には
>Private Sub s(i)_SpinUp()
>If c(i)..Text <> "" Then
>    c(i).Text = DateAdd("n", -30, c(i).Text)
>    c(i).Text = Format(c(i).Text, "h:nn:ss")
>End If
>見たいにしたいです。
>
>長くなってしまってすいませんが、
>ご教授お願いします。

これは、クラスモジュールを使えばイベント文が一つで済みます。
私は説明できないので、下記を参考にしてください。
詳しく説明されています。
www.h3.dion.ne.jp/~sakatsu/Breakthrough_P-Ctrl_Arrays.htm

【51344】Re:オブジェクト名が変化して処理は変わ...
お礼  アルジ  - 07/9/12(水) 18:03 -

引用なし
パスワード
   ▼ichi さん:
こんにちは、返信ありがとうございます、
早速読んでみます。


>▼アルジ さん:
>こんにちわ
>
>>最終的には
>>Private Sub s(i)_SpinUp()
>>If c(i)..Text <> "" Then
>>    c(i).Text = DateAdd("n", -30, c(i).Text)
>>    c(i).Text = Format(c(i).Text, "h:nn:ss")
>>End If
>>見たいにしたいです。
>>
>>長くなってしまってすいませんが、
>>ご教授お願いします。
>
>これは、クラスモジュールを使えばイベント文が一つで済みます。
>私は説明できないので、下記を参考にしてください。
>詳しく説明されています。
>www.h3.dion.ne.jp/~sakatsu/Breakthrough_P-Ctrl_Arrays.htm

【51359】紛らわしい事をしてすみません。
発言  Jaka  - 07/9/13(木) 9:24 -

引用なし
パスワード
   ▼アルジ さん:
>今Jakaさんから返信があったように思われますが
>私の手違いか何かで消えてしまいました。すいません。
すみません。
私がまた勘違いしていると思って、自分で消しました。
紛らわしい事をしてすみません。

【51362】Re:紛らわしい事をしてすみません。
お礼  アルジ  - 07/9/13(木) 10:37 -

引用なし
パスワード
   ▼Jaka さん:
返信遅くなってすいません
いろいろ勉強が出来たとおもいます。
まだ解決はしてないですが
これからクラスを勉強して解決したいと思います、
ありがとうございました。
またなにかあったらよろしくお願いします

>▼アルジ さん:
>>今Jakaさんから返信があったように思われますが
>>私の手違いか何かで消えてしまいました。すいません。
>すみません。
>私がまた勘違いしていると思って、自分で消しました。
>紛らわしい事をしてすみません。

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