• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:結合されているセルの参照の仕方)

結合されているセルの参照の仕方

Wendy02の回答

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

こんにちは。 >C30・C32・C34・C36  と  O30・O32・O34・O36に C30 -> O30 C32 -> O32 C34 -> O34 C36 -> O36 それぞれが対応しているということですね。 しかし、C30 と C32 自体は、独立しているということになりそうですね。 ご自身で直せるように、簡単な解説を付けておきます。 --------------------------------------------- Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("C30,C32,C34,C36")) Is Nothing Then Exit Sub Application.EnableEvents = False  'O列の該当する行を消去する  Cells(Target.Row, "O").MergeArea.ClearContents Application.EnableEvents = True End Sub ---------------------------------------------- 解説: このようなマクロを、私は「イベント・ドリブン型」と呼んでいます。 1. Private Sub Worksheet_Change(ByVal Target As Range) ワークシートが変化したら、マクロを動かしなさいということです。 ByVal Target As Range は、Range(セルの範囲のオブジェクト)として、引数、Target を、引き受けます。 なお、Target というのは、入力したセルのことで、予め、決まった名前のことです。 2. 前回:If Target.Address <> "$C$30" Then Exit Sub     ↓ If Intersect(Target,Range("C30,C32,C34,C36")) Is Nothing Then Exit Sub Intersect をつかいます。(交差するという意味です) 「交差」しなかったら、マクロは動かないで、Sub の 外(Exit) に出る、ということです。 このような書き方が決まっているわけではありません。一般的に、流通しているというだけです。 3.  Cells(Target.Row, "O").MergeArea.ClearContents Cells(該当する行, 列名) Target.Row は、変化したところのセルの行数 MeargeArea は、その繋がっている結合セルの範囲 ClearContents は、値を消去しなさい ということです。 4. Application.EnableEvents = False   ~ Application.EnableEvents = True これは、もしかしたら、不要かもしれません。マクロが動かなくなるようなことがあったら、以下のコードは削除してしまってください。その原因は、イベント・ドリブン型の信号を受け取らないように、Offにしています。Off と On の間で、エラー値を受け取る、マクロがとまってしまうからです。そのままになると、イベント・ドリブン型マクロは動かなくなることがあります。 そこで、Off の状態を戻すのは、 Sub ReGain  Application.EnableEvents = True End Sub とするか、Excelを再起動すれば戻ります。 これを使う場合は、マクロが走って、信号を受け取ると、また再び、自分のところに返ることを「再帰」といいます。Worksheet_Change は、自分のセル(Target-選択したセル)を変化させたときだけ、「再帰」は起こらないのですが、他のセルを変化させると、多くは、「再帰」してしまいます。そうすると、何度も何度も、繰り返しマクロが走ってしまうことがあります。それを防ぐためですが、念のために入れているだけで、今回は、あまり意味がありません。

mmjgr
質問者

お礼

ありがとうございます。 思っていた通りの操作ができるようになりました。 大変助かり感謝しております。 何回もお手数をおかけしました。 しっかりご説明をいただき、解決しましたので ポイントを付与させていただきたいので、質問を締め切ろうかと思います。 大変ご親切にしていただきまして、本当にありがとうございました。

関連するQ&A

  • エクセル 結合セルでも関数は使える?

    セルA1,B1,C1を1つに結合したセルにデータの入力規則を設定しドロップダウンリストから任意の項目を選択できるようにしました。このあと、ドロップダウンリストから例えばAという項目を選択したら、aという文字が隣のセルに表示されるようにしたいのですがどういう関数を使用すればよいですか?又この隣のセルというのもD1,E1,F1までのセルを結合していますが、関数は使えるのでしょうか?

  • 結合したセルの左上以外のセルから値を参照したい

    エクセルで、セルA1:C3を結合しています。 =A1 として参照する場合には、結合セルの値を参照できますが、 =B1とか=A2とかのように参照すると、0が表示されてしまいます。 B1やA2のセルを指定した場合にも、結合セルの値を参照できるような シート関数はないのでしょうか。 =KANSU(B1)とか=KANSU(A2)とした場合に、 結合セルの値を得られるシート関数を教えてください!

  • エクセルにて結合セルの範囲を参照するには?

       A B C D E F 1 |フォード| 2 |BMW | 3 |ホンダ | 各行A列~C列3つを結合入力 4 |ルノー | 5 |DFR  | 6 |ベンツ |  上記のようなエンジンメーカー表にて、A1~C1,A6~C6間にF1へエンジンを供給しているメーカー名がA~Cの3つのセルを結合して入力されているとします。  このような表を用いて別のワークシートから、このエンジンメーカーの入力セルの文字列を参照したいのですが、  フォードの場合ですと、=’エンジンメーカー表’!A1:C1と表示され、エラー値VAULEが返され、参照したい文字列が返りません。  結合されている3セルに範囲名をつけてINDIRECT関数で参照すれば出来るのですが、結合セルの項目が多過ぎて、いちいち、名前をつけていられないのです。  また、表のセル結合を崩せないのです。(同じフォーマットで作られている表が多数存在のため) このような単一セルでなく、複数のセル範囲を結合して入力されている文字列を簡単に=で参照する方法は無いでしょうか?

  • 結合したセルのセル参照

    http://oshiete1.goo.ne.jp/qa2144305.html http://oshiete1.goo.ne.jp/qa1315043.html 上記の二つの質問を見ましたが、疑問が取れないので質問します。 知識が乏しいので、言葉の使い方がおかしかったらすみません。 ----- 別シート(シート名は漢字を使った和名に変更済)の 結合したセルにセル参照したい時のエラー(?)です。 ツールバーの「=」ボタン、もしくはキーボードから「=」を入力し カーソルで参照先のセルをクリックすると  ='シート名'!A1:B1 と入力されてしまい、エラーになります。 また、それと同じ操作をしているはずなのに  ='シート名'!A1 となる場合もあります。前者ではもちろんセル参照できませんので 後者のようにしたいのですが、何か設定があるのでしょうか? 前者のようになってしまうのは仕方がないことですか? 毎回「:B1」の部分を消すのは大変手間がかかります。 それとも、そもそもカーソルでセル参照をするやり方が悪いのでしょうか?

  • エクセル セルを結合させてドロップダウンリストを作りたい

    Office2003を使用しています。 エクセルで、結合させたセルの列を一つの列とみなしてドロップダウンリストを作成したいのですがうまくできません。 言葉が足りずにわかりにくいかもしれませんが、例えば1行目のA列とB列、2行目のA列とB列、3行目のA列とB列・・というようにセルを結合させていき、その列にドロップダウンリストを作成したいのです。 結合させた後に範囲を指定してドロップダウンリストを作成しようとすると、A列とB列の2列にドロップダウンリストを作成するように出来上がってしまいます。 何か方法はありますでしょうか? 宜しくお願いします。

  • 結合したセルに参照式を・・・

    伝わりにくいかもしれませんが、ご容赦下さい。 sheet1にA1:A4を結合したセルを作って、そこにsheet2のA1を参照するように =sheet2!A1と式を入れます。 A5:A8の結合セルは、sheet2のA2、A9:A12の結合セルは、sheet2のA3を参照・・・ としたいので、A1:A4の結合セルを選択して、下方向にドラッグさせたのですが、A5:A8の セルの参照式が=sheet2!A5になってしまいます。 どうやらA2:A4もカウントしてしまっているように思います。 一つ一つ手入力で入れて行けば問題なくできますが、ここにこれから何百データと入れて行くので、 手入力は非常に面倒で避けたいです。 ドラッグでA5:A8はsheet2のA2、A9:A12はsheet2のA3・・・とさせる方法はないでしょうか? (要は、結合した中の最段以外の行はカウントしないように)

  • EXCEL セル結合したセルを参照したい!

    Sheet1 A1:B3 セル結合して「5」が入力されている Sheet2 A1:B3 セル結合して「5」が入力されている Sheet3 A1セルに上記の合計を出したい =Sheet1!A1:B3+Sheet2!A1:B3 となってしまって答えが#VALUEとなってしまいます。 結合されているセルはセル参照の計算は不可能なのでしょうか? 説明が下手ですいません。 おわかりの方教えてくださーい!

  • Excelで(セルを結合して中央揃え)した後の 結合された方のセルを参照した場合

    Excelで(セルを結合して中央揃え)した後の 結合された方のセルを参照した場合 全然参照されてきません。 わかりやすく例をだすと (1)A1とB1を(セルを結合して中央揃え)します。 (2)そこに文字を打ちます。 (3)他のシートのセルに  ="『"&Sheet1!A1&""』" とするとA1に入っていたものはそのままコピーされます。 (4)ですが  ="『"&Sheet1!A2&""』" とするとまったくコピーされません。 なんとか結合されたA2の方を参照したとしてもコピーできる方法はないでしょうか?困っています。どなたか助けてください。

  • セルの入力規制で、別ブックにあるデータから参照する。

    セルの入力規制で、別ブックにあるデータから参照する。 セルの入力規制で、別ブックにあるデータからA1の結果によりA2にドロップダウンリストを表示させたいのですが。 例えば、下記のデータがブックAにあるとします   A   B   C 1 三菱 日産 日野 2 FU  CW  FH 3 FK  CM  FD 4 FC  MK  FB ブックBのセルA1で、ドロップダウンリストから 三菱 日産 日野 のいずれかを選択すると ブックBのセルA2では、三菱 日産 日野の列に対応した(三菱だったらFU FK FC、日産だったらCW CM MK)ドロップダウンリストを表示させたいのですが、どうすれば良いのでしょうか? 別ブックからはINDIRECTで可能なのと、同ブックからのA1の結果によるA2のドロップダウンリスト表示は「選択範囲から名前を作成」で可能なことは分かったのですが、二つをどのように組み合わせれば良いのか分かりません。

  • VBA 結合セルの

    EXCELにて結合セルを含む表の白紙化をしようとおもいます。しかしなぜか結合セルの部分はうまくいきません。 どうすればよいでしょうか。 range("A1:A6").clearcontents A1からA9に結合セル3つ含んでいます。