Excelでデータを自動入力する方法

このQ&Aのポイント
  • Excelで特定のファイルからデータを自動入力する方法について教えてください。
  • 特定のファイルの特定のセルの値を取得し、他のセルに自動入力する方法を知りたいです。
  • 面倒な置き換え作業をせずに、ファイルが変わるたびに特定のセルの値を自動的に入力したいです。
回答を見る
  • ベストアンサー

excel で質問です。

A1に0 B1に0 A2の0 B2に0 A3に0 B3に0 ・ ・ 上記の様に予めおが入力されています、これを A1='D:\[20110501.xls]Sheet1'!B34 A2='D:\[20110501.xls]Sheet1'!N34 A3='D:\[20110501.xls]Sheet1'!H34 B1='D:\[20110502.xls]Sheet1'!B34 B2='D:\[20110502.xls]Sheet1'!N34 B3='D:\[20110502.xls]Sheet1'!H34 上記の様にしたいのですが、以前教えて頂いた置き換えの方法は 実に面倒で大変です。 そのファイル(20110501)が出来ると、セルの=以降を自動(ボタン?)で入力したい。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.3

シート名タブを右クリックしてコードの表示を開始する 現れたシートに下記をコピー貼り付ける 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行目に日付を入れると,勝手に所定の式が記入される。 以上です。 マクロの登録の方法を間違えないよう注意してください。 他によせられた回答のマクロと重複しないよう注意して,ファイルをコピーして作業してください。 今度は日付や実際の書きぶり,実際のファイルの保存場所などを間違えてる事に気付かないで出来ないなんてことが無いよう,注意して実施してください。 >以前教えて頂いた方法は実に面倒で大変です なにやら随分な聞き捨てならない感想をお持ちのご様子です。 大変気になりますが今回のご質問とは関係ない話題ですので,補足はしないでください。 別途ご相談投稿していただければ,どこが面倒なのか,何か改善の余地があるのか,解決策を探ることはできるかもしれません。

mayumi-235
質問者

お礼

有難う御座いました。 range("1:1"))がどうしてもわからなかったのですがA1で良かったでしょうか? お手数をおかけしました。

その他の回答 (3)

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.4

実際にファイルが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

mayumi-235
質問者

お礼

有難う御座いました。 参考にさせて頂きました。

  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.2

貴方が、どれほどの知識をお持ちかわかりませんが、 できないこと。 日付の名前のファイルが作成されたら、別の集計ファイルの式を追加する なんて、普通にはできません。 VBAというマクロを使用すれば、可能ですが、今、提示されている情報では情報が足りません。 考え方; ● 日付の名前のファイルにマクロを追加するのは、手間が掛かるから、集計ファイルにマクロを埋め込む。 ○ 集計ファイルを開いた時、日付の名前のファイルの有無を確認して、存在するファイルごとに、集計ファイルに   転記する数式を埋め込む 以上の仕様で、マクロを作成してさしあげることは可能ですが、日付の名前のファイルの有無を確認する箇所で、対象と なるフォルダをご自身の環境に合わせたり、細かな修正が必要になりますが、その対応はできますか?

mayumi-235
質問者

補足

○ 集計ファイルを開いた時、日付の名前のファイルの有無を確認して、存在するファイルごとに、集計ファイルに   転記する数式を埋め込む 上記内容が私が思っていた事と似ています。 可能なら教えて頂けないでしょうか

noname#157410
noname#157410
回答No.1

CTRL+H 文字のおきかえしたらどうですか?

関連するQ&A

  • エクセル2010の絶対参照について。

    エクセル2010についての質問です。 ファイルはエクセル2003?2007?のものを互換モードで使っております。 よろしくお願い致します。 sheet1のセルA1に、別のシート(Sheet2)のA2~A11の合計をオートサムで求めると数式が=SUM([Sheet2.xls]Sheet2!$A$2:$A$11)となっています。 sheet1のセルB1に数式=SUM([Sheet2.xls]Sheet2!$B$2:$B$11) sheet1のセルC1に数式=SUM([Sheet2.xls]Sheet2!$C$2:$C$11) sheet1のセルD1に数式=SUM([Sheet2.xls]Sheet2!$D$2:$D$11) をオートフィルか、コピーアンドペイストで素早くやりたいのですが、 数式の$を消して、=SUM([Sheet2.xls]Sheet2!A2:A11)でオートフィルでできるのですが、 自動で$が入力されるのがなぜだか分かりません。 $が自動で入力される理由と、$があるなしの違いを、理解してる方に聞きたいと思い 質問しました。 よろしくお願い致します。

  • エクセル VBA

    最終行から順番に下へ同列で入力するVBAを教えて下さい。 EXCELのVBAで教えて下さい。 シート1のA列にはB列が入力されると自動入力されるNo.があり、C~G列もB列が入力されると自動入力されます。 B列には日付が、H列には3~4桁の数字が入力したいのですが、 入力行は必ず最下行のセルB、Gな為、VBAでフォームを作成し、 入力実行ボタンを押すことにより、最下行のセルB、Gに反映されるように したいです。 又、上記入力後に、シート2のH~N列をコピーして、シート3のA~G列に値のみの貼り付けを行い保存した後、シート3のA~G列をコピーして csvファイルを作成して保存したいです。 一連の流れを、フォームの入力実行ボタンを押すことで実行したいのですができるのでしょうか? 宜しく御願い致します。

  • エクセルの質問です

    シート1のA1セルに『13』と記入。 シート1のA2セルに『買い物』と記入。 シート1のB1セルに『14』と記入。 シート1のB2セルに『洗濯』と記入。 シート1のC1セルに『15』と記入。 シート1のC2セルに『休み』と記入。 ◆◆質問はここからなんですが◆ 例えば、シート2のB1セルに『13』と入力すると、 自動的にシート1のA2に入力済の『買い物』がB2セルに表示。 例えば、シート2のB1セルに『14』と入力すると、 自動的にシート1のB2に入力済の『洗濯』がB2セルに表示。 例えば、シート2のB1セルに『15』と入力すると、 自動的にシート1のC2に入力済の『休み』がB2セルに表示。 要は、会社の日毎のシフトを作成しているのですが、 日によって毎月する業務が決まっており、 毎月1日は部屋の掃除、毎月13日は買い物といった感じです。 この「部屋の掃除」「買い物」といった毎月のスケジュールを ある一定セルで日付を書き換えるだけで、指定したセルに表示できればと思っています。 【シート1】    A   B   C 1  13  買い物 2  14   洗濯 3  15   休み 4 【シート2】(例えばB1セルに14と入力した場合)    A   B   C 1      14 2      洗濯 3      4 【シート2】(例えばB1セルに15と入力した場合)    A   B   C 1      15 2      休み 3      4

  • excel について質問です。

    A1セルに='I:\12345\bacup\[2011421.xls]メイン'!B18 B1セルに='I:\12345\bacup\[2011422.xls]メイン'!B18 ・ ・ ・ 15日〆で一度作ると5月15日まではそのまま使えますが、6月・7月・・と その都度シートを書き換えなければなりません。 [2011421.xls]この部分を自動で替えられないでしょうか? どうか宜しくお願いいたします。 excel 2003

  • エクセル

    Book1 A1セルにBook2 A1,B1,C1(同一シート)いずれかに文字あるいは数値が入力された場合 Book1 A1にリンクするようにしたいのですが =[Book2.xls]Sheet1!A1&[Book2.xls]Sheet1!B1&[Book2.xls]Sheet1!C1 とすると今後D,E・・・・と続くとすごく長い式になってしまいます。 これをもっと簡単な式に出来ないものでしょうか。(エクセル2003使用) ヨロシクお願いします。

  • Excel

    A.xlsとB.xlsの2つのブックがあります。 A.xlsのSheet1のB2セルに文字列が入っています。その文字列にはJ3など列と行の組み合わせの値になってます。 このA.xlsのSheet1のB2のセルの文字列を使ってB.xlsのSheet1の上記のB2に書かれた位置のセルの値を取得したい。 これを実現するにはどうすればいいですか? ご教授お願い致します

  • エクセルの質問です

       A   B   C   D 1      あ 2  ★   い 3      う 4      え 5      お B1セルに「あ」、B2セルに「い」…と入力済の表を作成。 例えば、上記のようにA2セルに★を入力したとき、 D1セルに「い」と表示させたいのです。 A1セルに★を入力→D1セルに「あ」と表示 A3セルに★を入力→D1セルに「う」と表示 A4セルに★を入力→D1セルに「え」と表示 A5セルに★を入力→D1セルに「お」と表示 こんな関数って何かありませんか?

  • 参照について質問です。

    A.xls と B.xls の二つのファイルが有るとします。 [A.xls の Sheet1 のセルA1] に [B.xls の Sheet1 のセルA1]の値を持ってくる時には、  =[B.xls]Sheet1!A1 と入力しますよね? ここからが質問なのですがA,B以外にもC~Zとゆうファイルがあったとします。 [A.xls の Sheet1 のセルA2~A26] に [B.xls~C.xls の Sheet1 のセルA1]の値を持ってくる時にはどうすればいいのでしょうか? 上手く説明出来ていないかもしれませんが教えていただけたら幸いです。 ちなみになのですがB.xls~Z.xlsの名前部分は0609とゆう具合の日付の名前になっています。

  • エクセルの質問です

      A   B   C   D 1 ★   あ       あ 2     い       う 3 ★   う       お 4     え 5 ★   お B1セルに「あ」、B2セルに「い」…と入力済の表を作成。 例えば、上記のようにA1 A3 A5セルに★を入力したとき、 D1セルに「あ」D2セルに「う」D3セルに「お」と★印を付けたB列の値をD列の1から順番に表示させたいのです。 A1セルに★を入力→D1セルに「あ」と表示 A3セルに★を入力→D2セルに「う」と表示 A5セルに★を入力→D3セルに「お」と表示 こんな関数って何かありませんか?

  • エクセルVBAのプログラム

    A.xlsからB.xlsのファイル(最初はA..xlsのみが開いています)へのデータ転送をしたいのですが、プログラムが組めません(>n<)  すみませんが誰か助けてください。 行いたい作業は以下の通りです。 ※デスクトップにあるB.xlsを開く ※A.xlsのセル「A1~A5」をコピーしてB.xlsのAの列の列で空欄の行を見つけて、列と行を入れ替えて貼り付ける(もしB.xlsのA10までデータが入力されていたら、貼り付ける場所はA11~F11になります) ※B.xlsは作業終了後自動保存して閉じる その際に ※A.xlsのセル「A1」にはデータ名が記入されているのでB.xlsのAの列にその名前があれば、そこに上書きする形にしたい。 ※A.xlsのA2のセルには「55,23」のように二つの数字が「,」でつながって入力されているので、B.xlsに貼り付けるときには、二つのセルにわけてそれぞれの数字を貼り付けたい。 お手数おかけしますがよろしくお願いいたします。

専門家に質問してみよう