Excel VBA質問箱 IV

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

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


37155 / 76738 ←次へ | 前へ→

【44757】Re:新規ブックの処理について
質問  tomo  - 06/11/30(木) 18:38 -

引用なし
パスワード
   ▼Kein さん:
回答ありがとうございます。
Set ステートメントを用いることで,名前付き仮保管を行うわけですね。
コピー作業のコードも自動記録にて作成したものをそのまま流用していたため,何かまわりくどい書き方だなと思っていたため,簡潔な表し方を示していただき,大変勉強になりました。

ついでで申し訳ないのですが,もう一つ質問させてください。
>   MyB.Worksheets(i).Range("A1:A50").Value = _
>   ThisWorkbook.Worksheets(i).Range("A1:A50").Value
と簡潔に表していただきましたが,これがThisWorkbookではない場合について教えて下さい。
実際にはマスターブックはマクロ専用ブックであり,コピー元となるデータ自体,このブックには書かれていません。作成中のマクロの大まかな流れを下記に示します。

Sub MainPgm()
   :
 Call test() '下記参照
   :
'この区間に解答いただいたコードを挿入することになります。
 MyB.Worksheets(i).Range("A1:A50").Value ・・・
   :
 Call test3() 'ここで最終計算を実施。オブジェクトはMainPgm()と異なる。
   :
End Sub
Sub test() 'オブジェクトはMainPgmとは異なる
 Call test2() 'これによって"sample.out"が作成されます。
 Open "sample.out" For Output Shared As #1
 Workbooks.OpenText Filename:="sample.txt", _
   :      '条件付でファイルを開きます
End Sub

OpenTextによって開いたブックがデータ元ブックとなるのですが,このデータをMyBに貼り付けていくにはどのようにすればいいのでしょうか?
賢くないやり方としては,
>   MyB.Worksheets(i).Range("A1:A50").Value = _
>   ThisWorkbook.Worksheets(i).Range("A1:A50").Value
前の行に
  Windows("sample.out").Activate
と記入しておけば,
  MyB.Worksheets(i).Range("A1:A50").Value = _
  ActiveWorkbook.Worksheets(i).Range("A1:A50").Value
と置換えることが可能なのでしょうが・・・
0 hits

【44727】新規ブックの処理について tomo 06/11/30(木) 11:19 質問
【44728】Re:新規ブックの処理について Jaka 06/11/30(木) 13:41 発言
【44751】Re:新規ブックの処理について tomo 06/11/30(木) 17:12 お礼
【44739】Re:新規ブックの処理について Kein 06/11/30(木) 15:45 回答
【44757】Re:新規ブックの処理について tomo 06/11/30(木) 18:38 質問
【44794】Re:新規ブックの処理について Kein 06/12/1(金) 15:38 発言
【44801】Re:新規ブックの処理について tomo 06/12/1(金) 16:58 お礼

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