- ベストアンサー
Excelでデータを自動入力する方法
- Excelで特定のファイルからデータを自動入力する方法について教えてください。
- 特定のファイルの特定のセルの値を取得し、他のセルに自動入力する方法を知りたいです。
- 面倒な置き換え作業をせずに、ファイルが変わるたびに特定のセルの値を自動的に入力したいです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
シート名タブを右クリックしてコードの表示を開始する 現れたシートに下記をコピー貼り付ける private sub worksheet_change(byval Target as excel.range) dim h as range set target = application.intersect(target, range("1:1")) if target is nothing then exit sub application.displayalerts = false for each h in target if isdate(h) then cells(2, h.column).formula = "='D:\[" & format(h, "yyyymmdd") & ".xls]Sheet1'!B34" cells(3, h.column).formula = "='D:\[" & format(h, "yyyymmdd") & ".xls]Sheet1'!N34" cells(4, h.column).formula = "='D:\[" & format(h, "yyyymmdd") & ".xls]Sheet1'!H34" end if next application.displayalerts = true end sub 添付図: 1行目に日付を入れると,勝手に所定の式が記入される。 以上です。 マクロの登録の方法を間違えないよう注意してください。 他によせられた回答のマクロと重複しないよう注意して,ファイルをコピーして作業してください。 今度は日付や実際の書きぶり,実際のファイルの保存場所などを間違えてる事に気付かないで出来ないなんてことが無いよう,注意して実施してください。 >以前教えて頂いた方法は実に面倒で大変です なにやら随分な聞き捨てならない感想をお持ちのご様子です。 大変気になりますが今回のご質問とは関係ない話題ですので,補足はしないでください。 別途ご相談投稿していただければ,どこが面倒なのか,何か改善の余地があるのか,解決策を探ることはできるかもしれません。
その他の回答 (3)
- kmetu
- ベストアンサー率41% (562/1346)
実際にファイルがDにあるかどうか分からないので ファイルを選択するという動作で ファイル名は必ず20110501.xlsといった形式だと仮定して Private Sub CommandButton1_Click() Dim SelectFileName As String Dim mWorkbook As Workbook Dim FileName1 As String Dim FileName2 As String Dim PathName As String ChDrive "C:" 'ファイルの存在するドライブを指定 ChDir "C:\Documents and Settings\エクセル" 'ファイルの存在するフォルダを指定 SelectFileName = Application.GetOpenFilename(FileFilter:="Microsoft Excelブック,*.xls") FileName1 = Dir(SelectFileName) FileName2 = Format(DateAdd("d", 1, CDate(Format(Left(FileName1, 8), "@@@@/@@/@@"))), "yyyymmdd") & ".xls" PathName = Replace(SelectFileName, FileName1, "") Range("A1").Formula = "='" & PathName & "[" & FileName1 & "]Sheet1'!B34" Range("A2").Formula = "='" & PathName & "[" & FileName1 & "]Sheet1'!N34" Range("A3").Formula = "='" & PathName & "[" & FileName1 & "]Sheet1'!H34" Range("B1").Formula = "='" & PathName & "[" & FileName2 & "]Sheet1'!B34" Range("B2").Formula = "='" & PathName & "[" & FileName2 & "]Sheet1'!N34" Range("B3").Formula = "='" & PathName & "[" & FileName2 & "]Sheet1'!H34" End Sub
お礼
有難う御座いました。 参考にさせて頂きました。
- kokorone
- ベストアンサー率38% (417/1093)
貴方が、どれほどの知識をお持ちかわかりませんが、 できないこと。 日付の名前のファイルが作成されたら、別の集計ファイルの式を追加する なんて、普通にはできません。 VBAというマクロを使用すれば、可能ですが、今、提示されている情報では情報が足りません。 考え方; ● 日付の名前のファイルにマクロを追加するのは、手間が掛かるから、集計ファイルにマクロを埋め込む。 ○ 集計ファイルを開いた時、日付の名前のファイルの有無を確認して、存在するファイルごとに、集計ファイルに 転記する数式を埋め込む 以上の仕様で、マクロを作成してさしあげることは可能ですが、日付の名前のファイルの有無を確認する箇所で、対象と なるフォルダをご自身の環境に合わせたり、細かな修正が必要になりますが、その対応はできますか?
補足
○ 集計ファイルを開いた時、日付の名前のファイルの有無を確認して、存在するファイルごとに、集計ファイルに 転記する数式を埋め込む 上記内容が私が思っていた事と似ています。 可能なら教えて頂けないでしょうか
CTRL+H 文字のおきかえしたらどうですか?
お礼
有難う御座いました。 range("1:1"))がどうしてもわからなかったのですがA1で良かったでしょうか? お手数をおかけしました。