• ベストアンサー
  • 困ってます

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)が出来ると、セルの=以降を自動(ボタン?)で入力したい。

共感・応援の気持ちを伝えよう!

  • 回答数4
  • 閲覧数95
  • ありがとう数2

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

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

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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

関連するQ&A

  • エクセルで

    たくさんのファイルの同じセル(ここではA18)に入っているデータを一つのファイルに持ってきたいのですが、ファイル名が連番(ここではN001~N300とします)である時に、各ファイルのデータをB1~B300に持ってきたいのですが、現在ファイル名を一つ一つ直していますが、もっと簡単にやる方法はありませんか? B1に ='[N001.xls]sheet1'!$A$18 B2に ='[N002.xls]sheet1'!$A$18 というふうに入れたいのですが、 私の知識では、一回B1の数式を300行目までコピーしてそれぞれを手でファイル名をなおしております よろしくお願いします

  • エクセルのファイルを絶対参照したい

    各ファイルを1つのファイルにリンクさせたいのですがファイル名を絶対参照ってできるのですか? (例) A1=[BOOK1.xls]sheet1'!$A1 B1=[BOOK2.xls]sheet1'!$A1… A1=[BOOK1.xls]sheet1'!$A2 B1=[BOOK2.xls]sheet1'!$A2… A1=[BOOK1.xls]sheet1'!$A3 B1=[BOOK2.xls]sheet1'!$A3…       :             :       :             : 

  • Excelで、できないかもしれませんが

    A1 のセルに〇  B1 のセルに× があるとします ここで  A2 に 1 を入力したときに A3 のセルに 〇(A1のセルの値) B2 に 2 を入力したときに A3 のセルに ×(B1のセルの値) それ以外のときは A3 を空欄に を表示する関数を作りたいのですが、どうしてもうまくいきません。 ちなみに、A2 と B2 は、同じ文字になることはありません。 どうにかしてこれを表示する方法はないですか?

その他の回答 (3)

  • 回答No.4
  • 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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

  • 回答No.2

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

共感・感謝の気持ちを伝えよう!

質問者からの補足

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

  • 回答No.1
noname#157410

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

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • エクセルの計算式で質問です。

    エクセルの計算式で質問です。 表を作っているのですがA2からA10の範囲に☆や○等の記号を入力するとそれに見合った値(☆=10、○=5)がでるような感じに作ってあります。(Sheet1) そこで別シート(Sheet2)に A1=☆ B1=10 と入力した場合(A2、B2……と下方向に続いていきます) 上記の数字を合計した式をSheet2!B1*(COUNTIF(A3:A15,Sheet2!A1))+Sheet2!B2*(…………)+と入力するとSheet1のA20に合計値がでるようにしてあります。 これでもできたのですが、記号と数字がたくさんある場合、式が非常に長くなってしまい大変なことに…… 何か短くなるような式ってありますでしょうか…? VLOOKUPとかですと検索値が範囲になってしまいますし…

  • ExcelのVBAのマクロについての質問です。

    セルA1:タイトル1 セルA2:タイトル2 セルA3:タイトル3 上記のように各セルに文字を入力しボタンを押下します。 そうすると、事前に用意してある別のExcelファイルを(雛形.xlsとします) タイトル1.xls タイトル2.xls タイトル3.xls のような名前でセルに入力した分だけExcelファイルを複数作成できるようにしたいのですが、 方法がよくわかりません。どなかた方法を教えていただければ幸いです。 ご回答お待ちしております。

  • エクセルで…

    エクセルで… Sheet1のA1、A2、A3の「文字」や「数字」を Sheet2のA1、B1、C1にリンクさせる作業をしているのですが、 Sheet2のA1のセルに =Sheet1!A1 Sheet2のB1のセルに =Sheet1!A2 Sheet2のC1のセルに =Sheet1!A3 と貼り付けていけばいいのですが、膨大なセルに貼り付けなければなりません。縦方向(A1→A100)にならばA1のセルに貼り付けた後、ドラックで下に引っ張ればいいのですが、単純に横方向(A1→B1…IV1)へ同様にするとsheet1のA1→B1…IV1とリンクされてしまいます。何か方法があればご教示ください。

  • Excelで数式のコピーが上手くいきません

    以下のことが出来ず困っています。  Sheet1のセルA1に「Sheet2!A1」、セルB1に「Sheet2!A2」が入っています。  このSheet1A1・B1の数式を横にコピーしたいのです。つまり、Sheet1C1にSheet2!A3~Sheet1F1にSheet2!A6というように数式の縦横が逆になるようにしたいのです。  さらに、上記で作成したSheet1のA1~F1までの数式を他の行にコピーしたいのです。A2に「Sheet2!B1」、B2に「Sheet2!B2」のようにです。  行列を入れ替える等やってみましたがダメでした。頭で考えていると訳がわからなくなります。  表内のデータ数が多いので手入力は避けたいです。  方法がありましたら教えてください。お願いします。

  • エクセル 違うシートに計算式がある場合

    エクセル2000を使っています。 下記の計算をしたいのですが、方法を教えてください。 1.Sheet1 A1とB1に計算したい元の数値が記入されています。 例えば、A1=1 B1=2 2. Sheet2 のA1とB1に数値が入る事としてC1に計算結果が出るものとします。 3. Sheet1のC1にSheet2のC1の内容を表示したい。 4. Sheet1 A2、A3・・・・・、B2、B3・・・・・に入力した後で、C2、C3・・・・・・に Sheet2のC1で計算させた結果を自動的に入力したい。 別の言い方をすれば、Sheet2 のA1・B1が関数の入力するところにあたり Sheet2のC1が関数の出力(というか、計算結果)にあたります。 Sheet1からSheet2を関数のように使いたいのです。 Sheet1 ____ A_____B_______C 1___1_____2______3 2___2_____3______5 3___5_____8______13 4___9_____1______10 5___4_____5______ 9 Sheet2 ____A_____B_____C 1________________ =A1+B1 2_____________________ こんなイメージです。 Sheet2で計算の入力に対応するセルがA1・B1 計算結果が書いてあるのがC1 実際は、大きな表を参照しながら計算するので、色々計算した結果(途中計算は他のセルも使います)がC1に表されます。 以上、よろしくお願いします。

  • Excelの式のコピーについて

    セルA1,A3,A5,A7・・・ に計算式の結果や、値が入力されてあり、 この値を別の表にリンクさせるために、 セルB1に'=A1' セルB2に'=A3' セルB3に'=A5'   ・   ・   ・ 数が多いのでコピー機能などを利用して簡単にしたいが、 B1をコピーしてB2に貼り付けると '=A3' ではなく '=A2' になります。 何かうまい方法はないでしょうか?

  • エクセルの質問です

      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セルに「お」と表示 こんな関数って何かありませんか?

  • Excelのオートフィルについて

    Excelで結合したセルにオートフィルで連続した値を入れたいのですが  (A1)と(A2)を結合して 「=Sheet2!B1」  (A3)と(A4)を結合して 「=Sheet2!B2」 と入力し  オートフィルで  (A5)と(A6)の結合に 「=Sheet2!B3」 としたいところ 「=Sheet2!B5」 になってしまいます。 うまく説明できないのですがいい方法があれば教えてください。 どうぞよろしくお願いします。

  • エクセルを教えてください!!!

    エクセルを教えてください!!! sheet1(A5~A40)に文字が入力されたら(空白セルは、無視して)自動的にsheet2の指定部分(A1~A10)に空白セルは無視して順番に入力された所のみ反映されるようにするには、どうしたらいいのでしょうか? >例)sheet1(A5=あ・A2=い・A3=う)をsheet2(A1=あ・・・)では、なく。 Sheet1の指定されたセル(A5~A40)の中で文字が入力された場合のみsheet2の指定されているセル(A1~A10)へ反映されるという意味です。例えばsheet1の A5→あ、A26→う、A30→お、と入力されたら、sheet2の A1~A3 に あ、う、お と空白セルは除かれ入力される設定にしたいのです。

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

    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とゆう具合の日付の名前になっています。