pickup

目次

閉じているExcelBooKへ転記する

こんにちは。伊川(@naonaoke)です。

閉じているBookへ転記する方法を紹介します。


上の記事の続きになります。

問題提起

 

(株)IKAWAの柄久 瀬瑠子(エク セルコ)は、上司から下記の依頼を受けました。

・Excelでデータベースを作成してほしい。

・ACCESSは使えない。

Excelは、表計算ソフトなので、データベースには適していません。

何か良い方法はあるだろうか?

解決策

 

回答
sesuo2.jpg
・閉じているBookへ転記するVBAを設定する。
・Excelを共有設定は行わず、通常は、読取専用で使用する。

閉じていいるBookへ転記するVBA

作成手順 その1 相対パスで作動するようにする


転送、転記をする場合は、上の図のように、必ず同一フォルダの、同じ階層に設置します。

ここでは、絶対パスと相対パスの詳しい説明は割愛しますが、同じ階層で設置したほうが、汎用性があります。

今回は、Cotrol.xlsmで入力した内容を、集計.xlsmへ転送します。

作成手順 その2 閉じているBookを開く Workbooks.Open

閉じているBookを開くコマンドは、Workbooks.Openを使います。

他にも方法はありますが、この方法が一番簡単です。


これで、集計.xlmsを開く準備ができました。

絶対パスは、転送先のファイルが、他のドライブに移動したときに、毎回、ファイルの場所を書き直す必要があります。

相対パスには、基本的に、煩雑な手間がありません。

ただし、デメリットは、共同開発をするときに、フォルダが不明なり、上手く設定できない等があります。

作成手順 その3 ブックを保存して閉じる DisplayAlerts

DisplayAlertsプロパティは、True の場合、マクロの実行中に特定の警告やメッセージを表示します。

値の取得および設定が可能です。ブール型 (Boolean) の値を使用します。


ブール型 (Boolean)は、上の記事で説明しています。


警告アラートを出さないように設定しています。

作成手順 その4 転記のコードを作成する

今回紹介するのは、いったん、閉じているBookを開いて、閉じるという作業をします。

人間の目には、閉じているままの状態に見えるというのが、今回のカラクリです。

転記のコードはそれほど難しくありません。


上のようなコードになります。

Private Sub CommandButton2_Click()

  Dim wb1 As Workbook
  Workbooks.Open ThisWorkbook.Path & "\集計.xlsm"
  Set wb1 = ActiveWorkbook
  

wb1.Worksheets("Sheet1").Range("A1:C4").Value = _
ThisWorkbook.Worksheets("Sheet1").Range("A1:C4").Value
 
Application.DisplayAlerts = False
wb1.Save
wb1.Close

Application.DisplayAlerts = True
  
End Sub

ここがポイント

 

ここがポイント
Function8.png
Valueは、省略できます。ValueがなくてもVBAは、Valueとみなして勝手に処理をします。しかし、今回は、Valueを付けないでコードを記載しましたが、反応しませんでした。反応しない場合など、Value付けて再度、コードを記載しましょう。Valueが省略されていることを忘れないようにしてください。

 

まとめ

 

今回のまとめ
sesuko3.jpg
カンタンなVBAで、Excelも、ACCESSと同じように使うことができます。ぜひ、1度試してください。ただし、ACCESSには勝てませんので、データベースが必要であるならば、ACCESSを購入したほうがいいです。

 

今回のサンプルファイルは、No48です。

毎日の業務が、3時間短縮できます

わからない事を延々と考えるのは、無駄です。

  • なんで作動かないの?
  • もうやだ!VBAなんか嫌い!
  • ネットで調べても情報がない!

必ず作動するコードが、ここにあります。

スポンサーリンク

Twitterでフォローしよう

おすすめの記事