こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

EXCEL VBA 別のブックへの転記について

ユーザーフォームを利用してEXCELにてデータベースを作成しております。
データ入力後は、コマンドボタンをクリックし
シートへデータを記録するコードを書きました。

その際に、同フォルダ内に設置している、別のブックを開き
同様にデータを書き込みたいと思っています。

コードを書くにあたり、以下の点を盛り込んでみましたが、エラーは出ないのですが
数値の反映が出来ておらず、必要な別ブックがオープン出来ていない気配です


1、ブックオープン時、開いているかどうか調べ
  開いてる   →メッセージなし  データの書き込み
  開いていない →ブックを開く    データを書き込む

2.別ブック 書き込むセルは、最下部のセル

3.作業終了後、別のブックは保存して閉じる

4.ブックの指定は、同フォルダ内なので、作業PC移動も考慮し
  パス名は、できる限り省略もしくは取得して設定したい

 フォルダ名                 「データ記録システム」
 ユーザフォームを起動させるブック   「全データ.xls」
 別ブック                   「管理用データ.xls」

EXCELは2003を利用していますが、近日中に2007へ移行いたします


まだまだ未熟なので、恥ずかしい限りですが
どうぞご教授頂けますようよろしくお願いいたします

投稿日時 - 2012-09-13 01:35:31

QNo.7694892

すぐに回答ほしいです

質問者が選んだベストアンサー

参考に
Dim wb As Workbook
Dim flg As Boolean
Dim LastRow As Long
'ブックオープン時、開いているかどうか調べ
For Each wb In Workbooks
  If wb.Name = "管理用データ.xls" Then
    flg = True
    Exit For
  End If
Next
'開いていない →ブックを開く
If flg = False Then
  Workbooks.Open ThisWorkbook.Path & "\管理用データ.xls"
End If
With Workbooks("管理用データ.xls")
  'Sheet1のA列の最終行を取得
  LastRow = .Worksheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row
  'Sheet1のA列の最終行+1に書込み
  .Worksheets("Sheet1").Cells(LastRow + 1, "A").Value = "書込みデータ"
  '管理用データ.xlsを上書き保存後、閉じる
  .Close True
End With

投稿日時 - 2012-09-13 08:49:58

お礼

ありがとうございます
理想通りの動作になりました

丁寧にコードを教えて頂き、とても勉強になりました

本当に感謝致します


お礼が遅くなり申し訳ありませんでした

投稿日時 - 2012-09-13 12:26:19

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問