Excel VBA質問箱 IV

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

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


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

【61298】マクロが既存ブックを開いた後止まってしまう。 らむ 09/4/24(金) 14:09 質問[未読]
【61299】Re:マクロが既存ブックを開いた後止まって... Yuki 09/4/24(金) 14:48 発言[未読]
【61341】Re:マクロが既存ブックを開いた後止まって... らむ 09/4/28(火) 12:52 お礼[未読]

【61298】マクロが既存ブックを開いた後止まってし...
質問  らむ  - 09/4/24(金) 14:09 -

引用なし
パスワード
   お世話になります。

既存ブックBOOK1でショートカットキーによりマクロを実行し既存BOOK2を開くところまでは実行されるのですが、そこで常に止まってしまいます。(エラーなどは出ていません。
)
エクセルのツールバーからマクロを実行した場合は、開いた後も処理が進みます。
もし解決方法がありましたらご教授お願いします。


下が作成したコード(一部)です。
よろしくお願いいたします。

'オラクル集計用エクセル
DIR1 = "C:\"          'ディレクトリー
BOOK1 = "マクロ作成用.xls"   'ブック名
                'ファイル名
'ログ作成用エクセル
DIR2 = "C:\"          'ディレクトリー
BOOK2 = "sample.xls"      'ブック名
FILE2 = DIR2 & BOOK2      'ファイル名

'ここまでBOOK1で実行されています。
'1日分のデータをコピーする

  DAY1 = Cells(T, 12)
  DAY2 = Cells(E, 12)
  
  If DAY1 = "" Then
    GoTo ED
  End If

  Do Until DAY1 <> DAY2
    DAY2 = Cells(E, 12)
    E = E + 1
    Range("L1") = DAY1
    Range("M1") = DAY2
  Loop
  
  E = E - 2
  Range(Cells(T, 1), Cells(E, 11)).Copy


'ログ作成用のエクセルを開く
  If Dir(FILE2) <> "" Then
    Workbooks.Open FILE2
  Else
    MsgBox "ファイルが存在しません。", vbExclamation
  End If

'-------------------------------------------------------------
'ここから↓↓↓が実行されません。


'1日分のデータを貼り付けをログ作成用エクセルのSheet1にコピー
  Application.Workbooks(BOOK2).Activate
  Sheets("Sheet2").Select
  Range("A1").Select
  ActiveSheet.Paste

【61299】Re:マクロが既存ブックを開いた後止まっ...
発言  Yuki  - 09/4/24(金) 14:48 -

引用なし
パスワード
   ▼らむ さん:
>お世話になります。
>
>既存ブックBOOK1でショートカットキーによりマクロを実行し既存BOOK2を開くところまでは実行されるのですが、そこで常に止まってしまいます。(エラーなどは出ていません。

ブックを開く前にコピーしているからです。
ブックを開いてからコピーして貼り付けましょう。

【61341】Re:マクロが既存ブックを開いた後止まっ...
お礼  らむ  - 09/4/28(火) 12:52 -

引用なし
パスワード
   ▼Yuki さん:
>▼らむ さん:
>>お世話になります。
>>
>>既存ブックBOOK1でショートカットキーによりマクロを実行し既存BOOK2を開くところまでは実行されるのですが、そこで常に止まってしまいます。(エラーなどは出ていません。
>
>ブックを開く前にコピーしているからです。
>ブックを開いてからコピーして貼り付けましょう。

お世話になります。
お返事遅くなってしまってすみません・・・

下のように変更してもだめでした。。
どうやら、他のブックを開いた段階で
どのようなコードでも止まってしまうようです。

他の既存ブックを開くのではなく
新しいブックを開いてそれに関数を貼り付けるように変更します。
ありがとうございました!


'1日分のデータをコピーする

  DAY1 = Cells(T, 12)
  DAY2 = Cells(E, 12)
  
  If DAY1 = "" Then
    GoTo ED
  End If

  Do Until DAY1 <> DAY2
    DAY2 = Cells(E, 12)
    E = E + 1
    Range("L1") = DAY1
    Range("M1") = DAY2
  Loop
  
  E = E - 2
  'Range(Cells(T, 1), Cells(E, 11)).Copy
  
'現在選択しているブック名を取得する。
  BOOKNAME = ActiveWorkbook.Name

'ログ作成用のエクセルを開く
  If Dir(FILE2) <> "" Then
    Workbooks.Open FILE2
  Else
    MsgBox "ファイルが存在しません。", vbExclamation
  End If
  
'新規ブックから開く前のブックに制御を戻す
  Application.Workbooks(BOOKNAME).Activate
  
'一日分のデータをコピーする。
  Range(Cells(T, 1), Cells(E, 11)).Copy

'1日分のデータを貼り付けをログ作成用エクセルのSheet1にコピー
  Application.Workbooks(BOOK2).Activate
  Sheets("Sheet2").Select
  Range("A1").Select
  ActiveSheet.Paste

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