Excelのシート削除方法とセル参照について

このQ&Aのポイント
  • Excelで特定のシートを削除する方法と、シートを削除した場合のセル参照について説明します。
  • シート1にある表を別のシートに引っ張ってきて、その後シート1を削除する方法を紹介します。
  • また、マクロを使用してシートを削除する場合には、セルの参照が一時的にエラーになる可能性があることにも注意が必要です。
回答を見る
  • ベストアンサー

Excel参照先セル位置を変更させない方法等

Sheet1にある表(行列データ)を毎回新しく貼り付け、 Sheet2で、A1に、 =Sheet1!A1 などとして、表を、そのまま引っ張ってくるとします。 Sheet2で、Sheet1を引っ張ってきていない、右側や下側の表部分で、で各種集計をします。 その場合、Sheet1を簡単に削除する方法はありますか? マクロでやってみたが、画像データなどがうまく消えないです。(マクロ中でジャンプでオブジェクト選択・削除しても、マクロ実行でも消えない)Excel2007 マクロで、Sheet1ごと削除して、Sheet1を作成するというものを作成した場合、おそらくSeeet2のセルの参照が一旦エラーになってしまうと思いますし。

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

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (454/690)
回答No.4

>あと結合されてしまった、セルを元に戻すにはどうすればよいでしょうか? は、こんなコードでイケると思います。 Sub Macro2()  ThisWorkbook.Sheets("Sheet1").Cells.MergeCells = False End Sub

spongetak
質問者

お礼

ありがとうございます!

その他の回答 (3)

  • HohoPapa
  • ベストアンサー率65% (454/690)
回答No.3

>マクロで、Sheet1ごと削除して、 >Sheet1を作成するというものを作成した場合、 >おそらくSeeet2のセルの参照が一旦エラーになってしまうと思いますし。 おっしゃる通り、Sheet2のセルに =Sheet1!C12 といった計算式が埋まっているのであれば、 むろん、VBAであっても、手作業であっても、 Sheet1が削除されれば、埋まっている計算式は使い物にならなくなります。 期待していることは、 Sheet1を削除、再追加することなく Sheet1を初期状態に戻したい。 ということでいいでしょうか。 また、 図形が残っているのでこれを削除したい ということであれば、 Sub sample() Dim i As Long ThisWorkbook.Sheets("Sheet1").Select For i = ActiveSheet.Shapes.Count To 1 Step -1 ActiveSheet.Shapes(i).Delete Next End Sub あるいは、セルに埋まっている値や計算式を削除したいのであれば Sub Macro1() Sheets("Sheet1").Cells.ClearContents End Sub で削除できます。

spongetak
質問者

お礼

ありがとうございます。 上記2つのマクロ、うまく動きました。 あと結合されてしまった、セルを元に戻すにはどうすればよいでしょうか? (一応、状況は、回答No1様の返答に記載しましたが)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

質問で聞いている、主目的の箇所がよく判らない。 他の人は判るのかな? 思い付くままに文章にするのでなく、テキストエディタに一旦書いて、他人に解るかどうか、チェックする癖を付けるべきだと思う。特に、主語がくるくる変わる書き方は要注意だ。 本件もメモ帳に書いて、チェックして、回答に張り付けた。 ーー 質問文は シートSheet1のデータの実例を1例あげて、それを使って、多少の文章を添えて、説明したらどうか。 その際、一般的でない1例だということを、あまり意識し過ぎてはいけない。 断りの文書などを入れると、読者をわかりにくくする。 1例での回答が出たら、回答を自分の場合に合わせて、修正するのは、質問者の仕事として、通常は、残るものだ。 ーー (1)>表を、そのまま引っ張ってくるとします。 >引っ張ってくるーー>どういう目的で? Sheet1とSheet2は決まっているのか? 表には画像のようなものが含まれているのか? (2)>その場合、Sheet1を簡単に削除する方法はありますか? >その場合 どのタイミングのこと? エクセル関数でシートの削除はできないだろう。どういう方法で言っているのか? Sheet1を削除しても、Sheet2の式は(意味はなくなりエラーは出ても)残ると思う。それでどの面で困るのか?新しくSheet1に別データを張り付けるのではないのか? Sheet2らしいが、どの点で困るのか? (3)>画像データなどがうまく消えないです 突然、画像データが出てくるがなぜ? Sheet1の画像だけ抹消したいのか?それをしても、Sheet2の関数式は影響ない(エラーが出たり無意味なデータになることはない)はずだが。 関数の引数に画像は指定できないはず。HyperLink以外。 (4)>(マクロ中でジャンプでオブジェクト選択・削除しても、マクロ実行でも消えない)Excel2007 なぜ突然、VBAの話を持ち出すのか? マクロの中で画像の選択は出来るでしょう。 (5)>マクロで、Sheet1ごと削除して、Sheet1を作成するというものを作成した場合、おそらくSeeet2のセルの参照が一旦エラーになってしまうと思います 当たり前だが、それがなぜ困るのか。 その後、また前のSheet1に似た様式のデータを新しいシートに貼りつければよいのでは。 参考 ジャンプの中の「オブジェクト」 Sub Macro1() ActiveSheet.DrawingObjects.Select End Sub == Sheet2の関数式の変更や置換の話なら、 https://www.moug.net/tech/exopr/0030013.html 数式の参照先を一気に変更する を読めば解決しそうだが、そうではないのか?どういう点でそれでは解決しないのか。

spongetak
質問者

お礼

いろいろありがとうございます。すみませんね、一応回答No1様の返答のところに、目的など記載いたしました。

  • msMike
  • ベストアンサー率20% (363/1775)
回答No.1

「Sheet2で、A1に、=Sheet1!A1 などとして、表」など必要部分を、「そのまま引っ張っ」た後は、 Sheet2全体を選択⇒Ctrl+C⇒マウスの右クリック⇒[貼り付けのオプション]直下の[123](値)アイコンをツン⇒Sheet1を削除 では駄目よダメダメですか? 駄目なら、その理由は?

spongetak
質問者

お礼

ありがとうございます。 すみません、単にSheet2のデータが値としてほしいのではなく、下記のような作業が目的です。 作業の目的としては、あるサイト(自社のDB上)のブラウザ表示画面をそのままコピーして、 Sheet1に貼り付ける。 (この段階で、セルの結合、オブジェクトがはりついたり、などが行われてしまう) Sheet2で集計表示で数値を確認 Sheet1を全く新しい状態にする (この行為において、最も重要なのは、セルの結合を解除すること、できれば、オブジェクトの削除、先のデータの削除。ここでもちろんエクセルファイル保存せず終了し、再度開きなおす、ということをすれば同様の目的は達せられるが、ちょっと手間です) ↓ Sheet1に貼り付ける。 から繰り返し。 というものです。

関連するQ&A

  • エクセルのマクロで、セルの値を参照してジャンプ

    エクセルのマクロで、セルの値を参照して、 別シートにジャンプして貼り付けたいと思っています。 <Sheet1>  |  A  B  C ------------------------------------ 1|  A1  あ  100 2|  B5  い  50 3|  C7  う  80 4|  D3  え  20 5|  E9  お  40 <Sheet2>  |  A  B  C  D  E ------------------------------------ 1|  あ 2|  100 3|         え 4|         20 5|    い 6|    50 7|       う 8|       80 9|            お 10|            40 といったイメージです。(お分かり頂けますか?) Sheets1!B1:C1を選択し、A1のセルの値を参照して、Sheets2!A1にジャンプして、 行列入れ替えて貼り付ける、といったマクロを組みたいのですが、 セルの値を参照する部分が分かりません。 実際はSheets2の様なシートは複数あり、1つのリストから複数の形式を変えた表を 作りたいと思っています。 Sheets2以降のシートに見出し行を加え、VLOOK関数を組み込んだ表を作っておき、 結果を貼り付けて見出し行を削除する、といったマクロは組めるのですが、 セルを参照してジャンプして貼り付けてくれると便利だと思い質問させて頂きました。 どなたかお知恵を拝借できましたら嬉しいです。 宜しくお願い致しますm(_ _)m

  • Excel計算式の、参照先シートを簡単に変更する方法を教えてください。

    Excelの計算式で使用している参照先(別シート)を簡単に変更する方法を教えてください。 具体的には、『JPY』、『JPY集計』『USD』の3つのシートがあります。 『JPY集計』シートでは『JPY』シート値を参照しており、下記のような式が沢山あります。 =SUMPRODUCT(('JPY '!O7:O448=B8)*('JPY '!P7:P448="")*'JPY '!N7:N448) (ちなみに上記では、JPYシート内の複数条件に合致するレコードのN列セルを集計しています) そこで、『JPY集計』シートをコピーして『USD集計』シートを作成し、『USD』シートのデータを参照するよう変更したいのです。 一般的な’置換’機能では’JPY’を’USD’に変更することはできませんでした。また、INDIRECT関数でシート名を別に定義できないかと思いましたが不慣れのためかうまくいきませんでした。 今後もこのような集計シートを作成することが多々あるので、後任のためにも簡単にできる方法を教えてください。 よろしくお願いします。

  • Excelで別のブックのセルを参照させるとき

    Excel2007です。 データ名「売上集計4月」・・・(1)のA1セルに、データ名「売上リスト4月」・・・(2)のA1セルの数値を表示させます。 データ(フォルダ)の階層は、 デスクトップ→売上フォルダ→売上集計→2011年度→売上集計4月 ・・・(1) デスクトップ→売上フォルダ→売上リスト→2011年度→売上リスト4月 ・・・(2) デスクトップ→売上フォルダ→売上集計→2010年度→売上集計4月 ・・・(3) デスクトップ→売上フォルダ→売上リスト→2010年度→売上リスト4月 ・・・(4) となっています。 ※2010年度と2011年度はフォルダで区別はされていますが、末端の階層だけをみると同じ名前のデータが存在する状態です。 (1)と(2)のデータを開いた状態でセルを選択して参照させると、 「売上集計4月」・・・(1)のA1セルには、='[売上リスト4月.xls]Sheet1'!A1と入ります。 この時、A1セルでは、(2)と(4)のデータは区別されているはずだと思うのですが、='[売上リスト4月.xls]Sheet1'!A1という表示内容からは、それが読み取れません。 例えば(2)のデータを誤って削除してしまった場合は、(4)のデータが勝手に参照されてしまったりするのでしょうか? (2)と(4)のデータ名自体に2010年度と2011年度の区別をつけた方がいいのでしょうか? ふと気付いて作業が止まってしまいました。 宜しくお願いします。

  • エクセルでシートは別ですが、同じセルの集計を行いたいのですが

    自治会のアンケートの集計に頭を悩ましています。 一つ目のシートに集計結果を入力出来る表を作りました。 組が10組有りますので、シートのコピーを繰り返して10組分を作成しました。 11シート目に各組の組別の質問毎の集計表を作成しました。 アンケートの設問が23問あり、選択も各問に3項目有ります。 最初は、集計表に各組の結果を入力すれば、自動的に集計表に転記出来るにと、集計表の入れたいセルをシフト+=を押して、その組のシートを開いて、集計結果のセルをクリックして、シフト+=+エンターを繰り返していましたが、余りにも回数が700回近く行わなければ成りません。 そこで教えて頂たいのですが、 10個のシートの同じセルを、各組に入力すれば集計表に自動的に同じ数字が入る様にする方法は有るのでしょうか? 宜しくお願い致します。 マクロはさっぱり判りませんので簡単に出来る方法をご教示頂きたくお願い致します。

  • シートごとに参照先セルを変更するには

    エクセルで請求書を作成している初心者です。 請求元データシートには請求先顧客名、商品名、数量、金額が一覧で入力してあります。 そのシートを元データとして、各請求先別シートが70シートあります(70件の請求書を作成)。 元データのA2~A71に顧客名、B2~B71に商品名、C2~C71に数量、D2~D71に金額が入力されており、A社請求シートには下データA2、B2、C2、D2を参照し、B社請求シートにはA3、B3、C3、D3と参照のセルを変えていきたいのですが、シートをコピーすると数式もコピーされてしまい、参照元を手入力で変更していて気が遠くなります。 検索してもよくわからなかったのですが、このシートにはこの行を参照、というように自動で変える数式か方法はありませんでしょうか? 初歩の質問でしたら申し訳ありません・・・。

  • Excelセルの参照

    Excelにdataとnという2シートがあります。dataシートのA列3行目~22行目にデータが縦入力されており、以降B列、C列とデータ入力が繰り返されます。 nシートでdataシートの入力値参照のため、あらかじめdataシートの参照リンクを貼っておきたいのですが、nシートのデータは横並びであるせいか、参照リンクをうまくコピーすることができません。 dataセルのA3セルの値をnシートのD1に=data!A3と貼り付けて、W1(=data!A22)まで数式を自動コピーできないでしょうか。また、D2~W2まで=data!B3~=data!B22など参照リンクをコピーで作成できないでしょうか。 よろしくお願いいたします。 横並びに参照する必要があるのですが、

  • EXCEL LOOKUP関数で別シートをセルから参照したい

    シート:集計表・4月・5月・6月・・・・3月 (4月~3月までは売上表が入っていて、表の形式はまったく同じです。) 集計表のシートにおいて、 A1にシート名を入力することによって、そのシートを使った範囲を取得したいと思ってます。 B2に =vlookup(B1,'A1'!A:B,2,0) この場合、'A1'! は有効しませんが、何かの関数を使ってこれと同じ結果を得たいと考えています。 いろいろ検索しましたが、(検索の仕方も悪いかもしれません。) VLOOKUP関数を使って複数列を範囲としたいので、よく出てくるINDIRECT関数はセル番地を指定する以上、無理だと判断しました・・・。 よろしくお願いします。

  • 【エクセル】名称を参照し画像を表示する

    いつも大変お世話になっております。 前回【エクセル】元データシートよりマクロで表を複数作成の件、 ご教示いただき、ありがとうございました。 元データシートよりマクロで表を複数作成した後、 各シートごとB1の名称を参照し、それに一致する画像をB5に表示することを 考えています。 いろいろ試してみたもののうまくいかず、質問させていただきました。 よろしくお願いいたします。

  • EXCELで以下のような集計を簡単に行いたいのですが、簡易な方法ってあ

    EXCELで以下のような集計を簡単に行いたいのですが、簡易な方法ってありますでしょうか? これに関してはマクロでは実現させるつもりはなく、あくまでEXCELの基本機能(と関数レベル)で行いたいのです。 マクロは作れますし今回の例が実現できる(擬似)マクロは既にあります。しかし、今回の話ではマクロは使わない!で、且つEXCEL初心者が操作手順A4紙1枚程度を見て操作できるものが良いです。 実は表を選択して「データ」の「集計」で簡単に出来るだろうと思っていたのですが…出来ませんでした。 データは図の左側のように担当者の名称がそれぞれ何個か書かれているだけです。このようにたった1列だけというデータになります。 これを図の右側のように担当者毎の回数と割合を表にします。(これに似た適当なフォーマットでOKです) 表ができればあとは業務が流れていくので助かります。 XPのEXCEL2003レベルでお願いします。ヒントでもモチロン構いません。お願いします。

  • シートが増えていく場合の統合機能について

    シート名に日付を入れて、一日のデータを入力しています。 A     B    C あいう  5   2 かき   3   1 さし   2    0 A列の項目の部分は、増えていきます。データは、毎日ありませんので、シート名の日付は、続いていない時もあります。 で、そのシートの先頭(一番左側)に、日付で入力したシートのデータを統合しています。 日にちが多くなってくると、統合するのは大変なので、マクロ、VBAなどでできないかなぁといった相談です。 1.データを入力する用の”本日”という名前を作成し、データを入力する。 2.集計用のシートの右側のシート(1日とは限らないため)から本日までのシートを統合する。 3.統合できたら、1で作成した本日のシート名を日付に変更する。 2の部分でマクロでできるのかなぁと(マクロの知識がありません)思っているのですが、考え方自体が間違っていますか?マクロの本で探し作成してみましたが、シートが増えないデータ統合はできた(本に載っていたので)のですが、シートが増えていく場合はどのようにしたらいいのか、わかりません。「集計用シートの右側のシート」をどう指定するのかもわかりません。 こうういった統合でマクロを利用するのは、可能なのでしょうか? ご教授いただければ幸いです。

専門家に質問してみよう