Excel VBA質問箱 IV

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

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


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

【26500】チェックボックスを使って複数シートをコ... MASAOU 05/7/7(木) 10:19 質問[未読]
【26501】Re:チェックボックスを使って複数シートを... つん 05/7/7(木) 11:05 回答[未読]
【26503】Re:チェックボックスを使って複数シートを... MASAOU 05/7/7(木) 11:44 お礼[未読]
【26506】Re:チェックボックスを使って複数シートを... MASAOU 05/7/7(木) 12:38 質問[未読]
【26507】Re:チェックボックスを使って複数シートを... Jaka 05/7/7(木) 12:57 発言[未読]
【26508】Re:チェックボックスを使って複数シートを... MASAOU 05/7/7(木) 13:04 発言[未読]
【26511】Re:チェックボックスを使って複数シートを... Jaka 05/7/7(木) 13:18 発言[未読]
【26512】Re:チェックボックスを使って複数シートを... つん 05/7/7(木) 13:31 発言[未読]
【26514】Re:チェックボックスを使って複数シートを... MASAOU 05/7/7(木) 14:16 お礼[未読]

【26500】チェックボックスを使って複数シートをコ...
質問  MASAOU  - 05/7/7(木) 10:19 -

引用なし
パスワード
   以下の様な操作をしたいのですが、よくわかりません。
ご教授をお願い致します。
Book1.xlsにAAA,BBB,CCC,DDD,EEEのシートがあるとします。
ユーザーフォームにはそれぞれのシート名がついたチェックボックスがあります。
例えば、AAA,CCC,DDDのチェックボックスを選択して、その選択された
シートだけを別のブック(Book2.xls)にコピーしたいのです。
チェックボックスを複数選択した時の処理がわかりません。よろしくお願い
致します。

【26501】Re:チェックボックスを使って複数シート...
回答  つん E-MAIL  - 05/7/7(木) 11:05 -

引用なし
パスワード
   ▼MASAOU さん:
こんにちは。

>以下の様な操作をしたいのですが、よくわかりません。
>ご教授をお願い致します。
>Book1.xlsにAAA,BBB,CCC,DDD,EEEのシートがあるとします。
>ユーザーフォームにはそれぞれのシート名がついたチェックボックスがあります。
>例えば、AAA,CCC,DDDのチェックボックスを選択して、その選択された
>シートだけを別のブック(Book2.xls)にコピーしたいのです。
>チェックボックスを複数選択した時の処理がわかりません。よろしくお願い
>致します。

チェックボックスのキャプションをシート名にして、
チェックボックス自体の名前は連番付きのにしたら、以下のように出来るかとおもいます。

  Dim strSH() As String
  Dim i As Long
  Dim k As Long
  
  k = 0
  
  For i = 1 To 5
    If Me.Controls("CheckBox" & i).Value = True Then
      k = k + 1
      ReDim Preserve strSH(1 To k)
      strSH(k) = Me.Controls("CheckBox" & i).Caption
    End If
  Next i
  
  With Workbooks("Book2.xls")
    ThisWorkbook.Sheets(strSH).Copy after:=.Sheets(.Worksheets.Count)
  End With

いかがでしょうか?

【26503】Re:チェックボックスを使って複数シート...
お礼  MASAOU  - 05/7/7(木) 11:44 -

引用なし
パスワード
   つんさんこんにちは
回答ありがとうございました。
早速やってみます。

【26506】Re:チェックボックスを使って複数シート...
質問  MASAOU  - 05/7/7(木) 12:38 -

引用なし
パスワード
   やってみましたが、以下のところで「インデックスが有効範囲にありません」のエラー表示が出てしまいます。
  
>  With Workbooks("Book2.xls")
    ↑
   ここで。

>    ThisWorkbook.Sheets(strSH).Copy after:=.Sheets(.Worksheets.Count)
>  End With

どうしてなんでしょう?

【26507】Re:チェックボックスを使って複数シート...
発言  Jaka  - 05/7/7(木) 12:57 -

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

▼MASAOU さん:
>やってみましたが、以下のところで「インデックスが有効範囲にありません」のエラー表示が出てしまいます。
>  
>>  With Workbooks("Book2.xls")
>    ↑
>   ここで。
単純に"Book2.xls"が無いからじゃないですか。

【26508】Re:チェックボックスを使って複数シート...
発言  MASAOU  - 05/7/7(木) 13:04 -

引用なし
パスワード
   ▼Jaka さん:
>こんにちは。
>
>▼MASAOU さん:
>>やってみましたが、以下のところで「インデックスが有効範囲にありません」のエラー表示が出てしまいます。
>>  
>>>  With Workbooks("Book2.xls")
>>    ↑
>>   ここで。
>単純に"Book2.xls"が無いからじゃないですか。

同じフォルダにBook2.xlsを入れてはいたんですが。。。

【26511】Re:チェックボックスを使って複数シート...
発言  Jaka  - 05/7/7(木) 13:18 -

引用なし
パスワード
   ▼MASAOU さん:
>同じフォルダにBook2.xlsを入れてはいたんですが。。。
入れていても開いてないと意味がありません。

>>単純に"Book2.xls"が無いからじゃないですか。
の意
同じエクセルアプリケーション内の開いているブックの中に"Book2.xls"がないと言った意味です。

【26512】Re:チェックボックスを使って複数シート...
発言  つん E-MAIL  - 05/7/7(木) 13:31 -

引用なし
パスワード
   Jaka さん、フォローあんがとございます^^
PCが固まって立ち上げなおしてた間に話が進んでた・・・

>>同じフォルダにBook2.xlsを入れてはいたんですが。。。
>入れていても開いてないと意味がありません。
>
>>>単純に"Book2.xls"が無いからじゃないですか。
>の意
>同じエクセルアプリケーション内の開いているブックの中に"Book2.xls"がないと言った意味です。

その通りです〜〜〜
開いた状態で実行するか、Book2を開く処理も含めてしまうか、どっちかにしないと駄目ですの^^

【26514】Re:チェックボックスを使って複数シート...
お礼  MASAOU  - 05/7/7(木) 14:16 -

引用なし
パスワード
   納得しました。うまくいきました。
もっともっと勉強しないとだめですねぇ。頑張ります。
ありがとうございました。

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