- 締切済み
他のブックセル数値を新しいブックに利用したい
教えてください、エクセルの初心者です 他のブックで作成した、表を他の新規ブックで 利用したいのですが。 その参照したいブックの参照したいセルは合計金額のため 一定の数値行毎に記入されています。 新規ブックの表ではその参照数値を日付ごと(一行ごと)に 表示させたいのですが? 参照したいブックの10行毎に参照したいセルがあります。 それを新規ブックで1行ごとに表示させたいのですが? 例 新規ブックのB20というセルにSUM('C:\WINDOWS\デスクトップ\○○○\○○○\[○○○.xls]○○○'!C900)という参照セルが入っている場合新規ブックのB21にSUM('C:\WINDOWS\デスクトップ\○○○\○○○\[○○○.xls]○○○'!C910)を入れたい場合、そのセルごとに手打ちで 入れなければいけなのでしょうか? ドラックすると自動で参照セルが一つずつずれるように 参照ブックのセルを10ずつずれるように自動で入れられないものでしょうか? 質問の仕方自体も良くわからなくご回答いただける方にご迷惑を おかけしますが、極力簡単にわかりやすく教えていただければ 幸いです、よろしくお願い申し上げます。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- pc_knight
- ベストアンサー率66% (52/78)
ある数式をB20セルに入れ、その縦方向コピーでの解決は無理(?)、少々敷居は高いですがVBAというプログラム言語を使えば可能。 二通り考えました。 方法1.随時処理(参照したいBook内の合計計算式の入っている行の最終行No.が下方に増したら参照したいBookを閉じる前に(5)の処理を行う。但しBook内の合計計算式がすべて入っていて、今後増えない場合は、(5)の処理は1回だけで可) (1)参照したいBook、「新規ブック」とも開いて置く (2)Alt+F11で"Microsoft Visual Basic - ブック名"のVBAを作成する画面を開く。 (3)挿入(I)-標準モジュール(M)でVBA編集エリアを追加する。 (4) VBA編集エリアに以下のSub~End Subまでを貼り付けてから、VBA作成画面を閉じる。(「×」をクリック) Sub keisansiki() Dim r As Long For r = 900 To Workbooks("○○○.xls").Sheets("△△△").Range("c65536").End(xlUp).Row Step 10 Workbooks("新規ブック.xls").Sheets("▲▲▲").Cells((r - 900) / 10 + 20, 2).Value = "=[○○○.xls]△△△!C" & r Next r MsgBox "新規ブックに計算式設定しました" End Sub (5) Alt+F8 →「keisansiki」→実行(R)を行う。(3万行データでも数十秒程度で式設定が終了) 方法2.「新規ブック」のB列内の任意の1セルの選択時にリアルタイム処理(そのセルに参照式を自動設定) (1)「新規ブック」のExcel画面の下端にあるシート見出し(例えば「Sheet1」)を右クリック (2)表示されたメニューから「コードの表示(V)」を選び (3)Iカーソルの点滅しているエリアに以下のコードをコピーして貼り付け Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Count = 1 And Target.Column = 2 And Target.Row >= 20 Then Target.Value = "=[book1.xls]sheet1!C" & Target.Row * 10 End If End Sub ※ ○○○は参照したいブックの名称に、△△△はそのシート名、▲▲▲は新規ブック内の該当シート名に要置き換え。 ※ 何れの方法とも参照式の設定はB列の20行以降のセルにのみ行うようにしてあります。 ※ テストする場合は、今、お使いのBookのバックアップを取っておくことを推奨します。
お礼
ありがとうございました。なにやら 大変むずかしそうですが、じっくり 試してみたいと思います。 休みの日か、時間の出来た日に 試してみようと思います。 ゆっくりじっくりためさせていただきます。 途中わからないところがあったら、また質問させてください。 丁寧なご回答本当にありがとうございます。