• 締切済み

セルをクリックすると別のファイルのシートをコピー

新しいシート(sheet1)に項目をつけて セルA1「表紙」・セルA2「消火器」・セルA3「誘導灯」を設定 セルA1の「表紙」をクリックすると、(sheet2)に別のブックからシート(表紙)をコピー セルA2の消火器」をクリックすると、(sheet3)に別のブックからシート(消火器)をコピー セルA3の「誘導灯」をクリックすると、(sheet4)にに別のブックからシート(誘導灯)をコピー という風にsheetを増やしていきたいのですが、どうやったら良いのでしょうか? マクロもVBAも経験ありません。 が、がんばりますので、アドバイスをお願いいたします。

みんなの回答

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

ごめんなさい、誤記ました 誤: private sub Worksheet_BeforDoubleClick(byval Target as excel.range, Cancel as boolean) 正: private sub Worksheet_BeforeDoubleClick(byval Target as excel.range, Cancel as boolean) 失礼しました。

maigo2naru
質問者

お礼

keithinさま いろいろご面倒をおかけして申し訳ありません。 さっそく、試したところ、うまくsheetがコピー挿入することができました。 本当に、ありがとうございました。 感謝でいっぱいです。 本当にありがとうございました。

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

んーと。。。。。。 では、次の通りにしてください。 手順: Cドライブにtestフォルダを作成する testフォルダの中に表紙フォルダを作成し、表紙.xlsを保存し、表紙という名前のシートを用意する testフォルダの中に総括表フォルダを作成し、総括表.xlsを保存し、総括表という名前のシートを用意する testフォルダの中に消火器フォルダを作成し、消火器.xlsを保存し、消火器という名前のシートを用意する testフォルダの中に点検者フォルダを作成し、点検者.xlsを保存し、点検者という名前のシートを用意する A社ブックを用意する A社シートに表紙、総括表、消火器、点検者と記入する シート名タブを右クリック、コードの表示を選ぶ 現れたシートに下記をコピー貼り付ける private sub Worksheet_BeforDoubleClick(byval Target as excel.range, Cancel as boolean)  dim myPath as string  dim myfile as string  mypath = "C:\test\" & target.value & "\"  myfile = target.value & ".xls"  on error goto errhandle  workbooks.open(mypath & myfile)  workbooks(myfile).worksheets(target.value).copy _   after:=thisworkbook.worksheets(thisworkbook.worksheets.count)  target.parent.select  cancel = true  workbooks(myfile).close false  exit sub errhandle: end sub ファイルメニューから終了してエクセルに戻る 表紙とか消火器と記入してあるセルをWクリックすると、各ブックから各シートをコピーしてくる。 間違えると出来ないので、間違えないようにやってください。 #再掲: >やるべきことを一つ一つステップを踏んで決めてから、それからマクロに取りかかるようまずしっかり準備してみて下さい。 何をしなきゃならないのかから丸投げして、やること全部手取り足取り教えてほしいってご相談なので、ご希望の通りにしました。 がんばってください。

maigo2naru
質問者

お礼

keithinさま いろいろありがとうございます。 手順どおりに作成してみましたが、A社ブックにそれぞれのシートが挿入されませんでした。(すみません) testのフォルダの中にA社のブックを保存していていいのですか? A社ブックのシートに表紙、総括表、消火器、点検者を記入する・・・のは、 sheet1内のセルに入力していいのですか? sheet1のタブを右クリックで 書いていただいているコードをコピー貼り付けでいいですか? でも、何かが違っているのでしょうねTT 重ね重ね申し訳ございません。

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

つまりどういうことでしょう。 あなたのご説明だけ読むと 1.元ネタ(消火器)ブックと「A社ブック」と「マクロブック」の3つのブックが存在する 2.「消火器」を選んだら、消火器ブックを探して開いて消火器シートを持ってこなきゃならない   「誘導灯」を選んだら、誘導灯ブックを探して開いて誘導灯シートを持ってこなきゃならない   「表紙」を選んだら、「表紙ブック」(???)を探して表紙シートを持ってこなきゃならない といった事を言いたかったのですか? 随分メンドクサイお話ですね。 「消火器ブック」とか「誘導灯ブック」とか、どこのフォルダに保存してあるのかも不明です。 「消火器ブック」の中から「具体的にどのシートを」引っ張ってくればいいのかも不明です。 ふつーに考えると「消火器型式一覧」の中から「この内容が書かれていればこれは消火器ブックだ」と調べて(step1)から、更に消火器ブックの中から「該当のシート」を探して持ってくる(step2)ような構成になってるはずです。 マクロはあなた以上の「教えてチャン」です。つまり、漫然と「思い描いてる」だけでは、ただの一行も進みません。 具体的に「何がどうなったら何をしたらいい」のか、やるべきことを一つ一つステップを踏んで決めてから、それからマクロに取りかかるようまずしっかり準備してみて下さい。 そういう準備が自力で出来ない場合は、寄せられた回答に従ってあなたの準備を行ってください。 再掲: >1.マクロブックを用意する >2.表紙等を記入したマクロシートを用意する >  他のシートは「削除しておく」 >3.「別ブック.xlsx」という元ネタブックは「いっしょに横に開いてある」

maigo2naru
質問者

補足

ありがとうございます。よろしくお願いします。 今、作成しているファイルは、 「表紙」フォルダ (表紙.xls)ファイル 「総括表」フォルダ (総括表.xls)ファイル 「消火器」フォルダ (消火器.xls)ファイル 「点検者」フォルダ (点検者一覧.xls)ファイル (自火報その4.xls)ファイル (消火器ロット表.xls)ファイル 以上のファイルが 報告書テンプレートのフォルダの中にあります。 今後追加の予定があります。 すみません。面倒な質問と、下手な説明でご迷惑をかけます。

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

ご相談の(ヤリタイ事の)説明不足: 1.ネタを持ってきたい「別ブック」って何?そのブックは「いまどうなっている」の? 2.「シートをコピーしたい?」それとも「誘導灯シートから『所定のセル(内容)』をコピーしたい」? ヤリタイ事(例): 1.マクロブックを用意する 2.表紙等を記入したマクロシートを用意する   他のシートは「削除しておく」 3.「別ブック.xlsx」という元ネタブックは「いっしょに横に開いてある」 手順: マクロシートのシート名タブを右クリック、コードの表示を選ぶ 現れたシートに下記をコピー貼り付ける private sub Worksheet_BeforeDoubleClick(byval Target as excel.range, Cancel as boolean)  on error goto errhandle  workbooks("別ブック.xlsx").worksheets(target.value).copy after:=thisworkbook.worksheets(thisworkbook.worksheets.count)  target.parent.select  cancel = true  exit sub errhandle: end sub ファイルメニューから終了してエクセルに戻る 表紙とか消火器と記入してあるセルを「Wクリックする」と、元ネタブックから「シートをコピーしてくる」。

maigo2naru
質問者

補足

アドバイスありがとうございました。 説明不足ですみません。 例えば、A社の設備に、消火器と誘導灯がある場合 ファイル名「A社」 sheet1「A社」詳細を入力して、 Sheet2に消火器のテンプレート (消火器のシートごと) sheet3には誘導灯のテンプレート (誘導灯のシートごと) をコピー挿入して 「A社」ファイルを完成させたいのです。 現在は、消火器のフォルダの中に消火器のテンプレート(エクセルxls)を作っています。 お手数を掛けて申し訳ありません。 よろしくお願いします。

関連するQ&A

  • エクセルで上書き保存がクリックされたらデ-タをコピーしたい

    よろしくお願いします。エクセルで、上書き保存のアイコンがクリックされたら または、「???への変更を保存しますか」に対して「はい」を選択した時に 開いているブックのシートAのセルC3のデ-タをシートBのD5にコピーする 為には、多分VBAを使わないとだめでしょうが、どんな風に書けばいいのでしょうか。またもしもVBAを使わずにできる方法があれば教えて下さい。 なお、私はベーシックの経験はありますが、VBAはさっぱり解りません。 ビジュアルベーシックエディターを開いて、VBAマクロをそっくりコピー したことはあります。素人に教えるのは大変面倒かとは思いますが、よろしく ご指導お願いします。

  • 複数のセルをコピーし、別シートの任意のセルへペーストをするためのマクロ

    ブック(1)のシート(1)にある複数の離れたセル(A1,B2,C3,D4:F4)をコピーし、別ブックのシート(1)のセル(E1,F2,G3,B4:F4)へリンク貼り付けを実行するためのマクロを教えてください。 なお、ブック(1)とブック(2)は同一階層に置いてあります。 このブック(1)とブック(2)の表のフォーマットが違っており、ブック(1)のセルA1をコピーして ブック(2)のセルE1へ貼り付けし、 また同様にブック(1)のセルB2をコピーして ブック(2)のセルF2へ貼り付けをしていきます。 (A1→E1、B2→F2、C3→G3、D4:F4→B4:F4 へ貼り付ける) この作業をマクロを使って自動実行させたいと思っています。 御手数お掛け致しますが、何卒よろしくお願いいたします。

  • EXCEL 別シートのコピー(2)

    こんにちわ。 以前、マクロなどで、同じ名前のシートから別ブックの同じ名前のシートへ上書きはできるのでしょうか?という質問をさせていただき、教えていただいた方法でコピーをしてますが、値だけコピーすることはできるのでしょうか?(結合セルが結構あるので、難しいとおもいますが・・・。) と、いうのも数式のセルは、リンクがはられてしまうので困るのです。 教えてください。

  • Excel 同ブックの他シートを参照するセルを、他ブックのセルにコピー

    こんにちは。Excelの使い方について質問させていただきます。 よろしくお願いします。 Excel2003を使っています。 シート数、シート名がまったく同じブックが2つあります。 AブックのAシートのA1セルを参照しているセルである AブックのBシートのA1セルをコピーします。 BブックのBシートのA1セルにペーストします。 BブックのAシートのA1セルを参照して欲しいのですが、 別ブックであるAブックのAシートのA1セルを参照するように 自動的に変換されてしまいます。 シンプルにそのままコピーすることは不可能でしょうか。 セルのコピーでは無く、中の文字列を選択してコピーしても、 何が起こっているのかよくわかりませんが上手くいきません。 Excel初心者です。マクロはまったく使えません。 親切な方、どうぞよろしくお願いします。

  • シートのコピー、セル全体のコピーで列幅が変わる

    VBAから新しいブックへのシートコピー、セル全体のコピーをすると 列幅が変化し、印刷プレビューで確認してもコピー元とは異なっています。 列幅をみるとコピー元が15、コピー先が11になっていますが、ピクセルは両方とも 90となっていました。 VBAを使わず手動で試したところ、コピー元と同じ列幅でシートコピー、セル全体のコピーが できました。 VBAでは、コピー元とコピー先の列幅を一致させることはできないのでしょうか? なお、バージョンはExcel2003で、使用したメソッドはマクロ記録したものです。

  • シート内の一部のセルを別シートにコピー

    Excelのマクロ(VBA)の記載方法について お分かりになる箇所だけでも結構ですので、 どなたかご教授を願い致します。 シートX   A    B   C  1 data1 data2 data3 2 x   data7 data8 3 data4 data5 data6 4 data7 data8 data9 シート Y   A   B   C    D 1 length 3  (任意) (任意) 2 xxxx (任意) (任意) (任意) 3 zzz  (任意) (任意) (任意) 4 (空白)(任意) (任意) (任意) 上記のような2つのシート(同一Excelファイル内)があって、 シートXの一部のセルを次の条件(1~4)でシートYにコピーしたい場合 1.コピー元の列の数は、シートYの "length"と書かれたセルの右となりの数字   とする(上記では3なので、A,B,C列をコピー対象) 2.コピー元の行の数は、シートXの1~4行目までとするが、   シートXのA列のセルが"x"だったら、その行は全てコピーしない。 3.コピー先(Y)の列は、コピー元(X)の列と一つずれてコピー(BならCに、CならDに) 4.コピー先(Y)の行は、シートYのA列で1行からで始めて空白セルになった行からコピー開始。 (上記では、A列で空白セルのある4行目からコピー) 上記条件で、下記のシートYを作成したいのですが、 この場合どようなマクロ(VBA)で実現できますでしょうか。 コピー結果(シートY)  A     B   C   D 1 length  3  (任意) (任意) 2 xxxx  (任意) (任意) (任意) 3 zzz   (任意) (任意) (任意) 4 (空白) data1 data2 data3 5 (任意) data4 data5 data6 6 (任意) data7 data8 data9

  • ExcelVBAで文字列編集後別シートのセルにコピーしたいのですが

    Excel2000を使用しています。作業中のブックのSheet1の後ろに別のファイルをコピーすることができました。そこから(コピーできたファイル)から文字列を編集してSheet1の特定のセルに貼り付けたいのですが、未熟者でできません。以下の操作をVBAマクロで実行したいのですが解る方教えてください。 (1)コピーしたファイルのA4セルにある文字列をMID(A4,6,10)で取り出しSheet1のB21セルに貼り付ける。(日付) (2)(1)が日付なのでそれから曜日を取得し、Sheet1のE21に表示する。 (3)コピーしたファイルのA5セルにある文字列をMID(A5,8,1)で取り出し(一桁の数字)1の時は福岡、2の時は佐賀、3の時は長崎、4の時は熊本、5の時は大分、6の時は宮崎、7の時は鹿児島、8の時は沖縄とSheet1のB24セルに表示する。 (4)コピーしたファイルのA6セルにある文字列をMID(A6,8,2)で取り出し(二桁までの数字)その後ろに"本"をつけてSheet1のB24セルに表示するB28に表示する。例)12本 (5)コピーしたファイルのA2セルにある文字列をMIDB(A2,20,6)で取り出し(時刻)Sheet1のE30セルに表示させる。 (6)コピーしたファイルのA12セルにある文字列をMID(A12,11,5)で取り出し(時刻)Sheet1のE34セルに表示させる。 (7)(6)の15分前の時刻をE36セルに表示させる。 よろしくお願いいたします。

  • excel新ブック作成しシートをコピーし名前つけ

    マクロ初心者です。 Excel2003を使っています。 新ブックを作って、指定分のコピーシートを作製し、更にブックとシートに名前をつけて、もっと言えば各シートのセルA2の場所にシート名と同じ日付が入る 夢のようなワンクリックのマクロが出来ないものでしょうか? よろしくお願いいたします。

  • 複数sheet(可変)を別bookにコピーする

    Excel VBAでの質問です。 わかる方ご回答いただけると幸いです。 例えば、 現在"9月"というExcelファイルを開いて作業しています。 sheetは"1"~”20”という、作りが同じsheetが20個あります。 <やりたいこと> ・各sheetのA1~D80のセルの値をすべてdeleteする  (ただしsheetによってはA1セルの値を次月の同じsheetのK1セルにコピーする。  コピー後はA1セルの値はdeleteしてよい。) ・”10月”という名前のbookで新規で保存する(毎月名前は変わります) 現在、毎月月末にsheet"1"~"20"までのセルの値をすべて消して 次月に残す値をコピーペーストして”10月”というファイル名をつけて 保存するということを手作業しています。 上記をボタンひとつでやってくれるようなマクロがほしいのですが。 可能でしょうか?

  • 別のシートにコピーする方法(マクロ)

    シート1 と シート2 を用意します。 シート1には、 A1:B3 の範囲に文字が入力されています(関数の場合あり) A1:B3の範囲(列の場合あり)をコピーして シート2の現在選択されているセルから貼り付けをワンクリックで する方法(マクロ)はありませんか? 私は、マクロはわかりませんが、マクロでしか出来ないようであれば 覚えます。 教えてください。

専門家に質問してみよう