Excel VBA質問箱 IV

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

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


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

【57174】ユーザフォームからシート名をとる つつじ 08/7/30(水) 19:52 質問[未読]
【57175】Re:ユーザフォームからシート名をとる kanabun 08/7/30(水) 20:26 発言[未読]
【57186】Re:ユーザフォームからシート名をとる つつじ 08/7/30(水) 22:57 お礼[未読]

【57174】ユーザフォームからシート名をとる
質問  つつじ  - 08/7/30(水) 19:52 -

引用なし
パスワード
   こんばんは。
 
ユーザフォームのリストボックス(オブジェクト名:shtname)に
全シート名を書き出しています。
シート名をクリックすると
そのシート名を引き継ぎ
ワークの処理をするものです。

フォームには
private sub useform_initialize()
dim i as long
for i = 1 to worksheets.count
   shtname.additem.worksheets(i).name
next i
end sub

private sub shtname_click()
public st as variant
 st=shtname.list(shtname.listindex)
 call ワーク
end sub


モジュール欄には
sub ワーク()
  with worksheets(st)
     処理
  end with
end sub


上記のコードでは
worksheets(st)
のstを取ることができていないようです。

どこを変更するべきなのか
教えてください。
よろしくお願いいたします。

【57175】Re:ユーザフォームからシート名をとる
発言  kanabun  - 08/7/30(水) 20:26 -

引用なし
パスワード
   ▼つつじ さん:
こんばんは。

コードは 実際のものをVBEウィンドウよりコピーしてここに貼り付けるようにしてください
でないと、ここに書き込むときのタイプミスか、もともとの構文エラーなのか
分からないですから。

>フォームには
>private sub useform_initialize()
> dim i as long
> for i = 1 to worksheets.count
>   shtname.additem.worksheets(i).name
   ↑ここがコンパイルエラーになると思います
> next i
>end sub
>
>private sub shtname_click()
> public st as variant
  ↑ここもコンパイルエラーになると思います

> st=shtname.list(shtname.listindex)
> call ワーク
>end sub
>
>
>モジュール欄には
>sub ワーク()
>  with worksheets(st)
>     処理
>  end with
>end sub

プロシージャのなかに Public変数を宣言できるんでしたっけ?
まぁ、それは置いておいて、

標準モジュールのほうは

Sub ワーク(ShtName as String)
  With worksheets(ShtName)
     処理
  End With
End sub

とか、引数でシート名を受け取るようにしておいて、
これを呼び出すほうは、

Private Sub shtname_click()
 ワーク shtname.list(shtname.listindex) 
End sub

だけで済むかと思います。
shtname.listindex が -1 だった時のエラートラップは必要ですが。

【57186】Re:ユーザフォームからシート名をとる
お礼  つつじ  - 08/7/30(水) 22:57 -

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

>コードは 実際のものをVBEウィンドウよりコピーしてここに貼り付けるようにしてください
>でないと、ここに書き込むときのタイプミスか、もともとの構文エラーなのか
>分からないですから。

以後気をつけます。

コードも含め、ありがとうございました。

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