• ベストアンサー

VBA 結合セルに名前を付ける

作成中のマクロで、 「B9とB10を結合したセルに名前を付ける」 作業を入れたいのですが、 Range("B9:B10").Name = "あああ" とすると、マクロを実行した時にエラーになってしまいます。 Range("B9").Name = "あああ" としても、エラーになりました。 エラーが出ないvbaを教えてほしいです。

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

  • ベストアンサー
  • kybo
  • ベストアンサー率53% (349/647)
回答No.1

Range("B9:B10").Name = "あああ" でも特にエラーにはなりませんでしたが、以下の様に記述することも出来ますので、試して下さい。 ActiveSheet.Names.Add "あああ", "=$B$9:$B$10"

その他の回答 (1)

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

https://okwave.jp/qa/q4459936.html 結合セルに名前をつけてマクロで取得は不可? のベストアンサー結合する前にそのセル範囲に名前をつければ大丈夫だと思います ーー 名前を定義するときの参照範囲が結合しているセルの場合左上のセルのみになるのが原因のように思います の点を参考にしてみてください。

関連するQ&A

  • VBAでの結合セルのコピー&ペースト

    こんにちは。 EXCELのVBAでマクロを作成しています。 セルの値のコピー&ペーストを行おうとしているのですが、結合されているセルのペーストのときに、「同じ結合セルが必要です」とエラーになってしまいます。 例えば、A1とA2が結合されたセル+A3をコピー Worksheets(x).Activate Range("A1:A3").Selection Range("A1:A3").Copy 別のシートで、B1とB2が結合されたセル+B3にペースト Worksheets(y).Activate Range("B1:B3").Paste セルの結合を解除すればうまくいきます・・・ セルを結合したままペーストしたいのですが、どうやら間違っているようです(ノ_・。) どなたか教えてください。 よろしくお願いします。

  • VBAショートカットキー セルの結合・解除

    VBAでエクセルで使用するショートカットキーを作成しております。 エクセルは2007を使用しています。 Ctrl+Shift+F で 選択したセルが、結合していたら解除、解除されていたら結合  という命令を作成しました。(ネットから拝借ですが、、、) 選択した範囲のセルに何も書かれていないときは良いのですが、何かが入力された範囲を 選択して、実行するとエクセル上で 【選択範囲には複数のデータ値があります。1つのセルとして結合すると、選択したセル範囲になるもっとも左上端になるデータのみが保持されます(空白セルは無視されます)】 という警告(?)ウインドウが表示されます。 その後「 OK 」 を押すと問題ないのですが「 キャンセル 」を選択すると VBAで ”実行時エラー’1004” RangeクラスのMergeCells プロパティを設定できません。 と エラーになってしまいます。 「キャンセル」を選択した際に、エラーにならないようにするには、どのように修正すれば良いか 教えて頂きたいです。 以下、作成したマクロです。 デバッグを確認すると[ .MergeCells = True ]の部分が黄色くなります。 ---------------------------------------------------------------------- Sub auto_open() Application.OnKey "+^F", "セルの結合解除" End Sub ’------------------------------ Sub セルの結合解除() With Selection If .MergeCells = False Then .MergeCells = True .HorizontalAlignment = xlCenter Else .MergeCells = False End If End With End Sub ---------------------------------------------------------------------- 何卒宜しくお願い致します。

  • 結合されたセルの移動 VBA

    「結合されたセルの一部を変更することはできません」と言うメッセージイベントでVBAを実行するにはどうしたらよいでしょうか? 結合されたセルあるいは複数の結合されたセルを選んで移動する場合、移動先が自分のセルに重なると、「結合されたセルの一部を変更することはできません」と言うメッセージが現れます。 これを回避するには一旦何も無い離れたところに移動し、それから再び目的の場所に移動します。 私の技能では以下のようなマクロになると思います。 最初に元の結合セルを選び、場所を覚えるマクロを実行しする。 次に移動先を指定し、「一旦何も無い離れたところに移動し、それから再び目的の場所に移動」するマクロを実行します。 これをワン・アクションで、「結合されたセルの一部を変更することはできません」と言うメッセージが出るタイミングで実行するにはどうしたらよいでしょうか。 よろしくお願い申し上げます。

  • VBA 結合セルの値を削除

    マクロ超初心者です。 C7~K7が結合されたセルの値を削除したいです。(値はC7に入力されています) Range("C7").MergeArea.ClearContents で実行してみたところ 実行時エラー'1004' アプリケーション定義またはオブジェクト定義のエラーです。 と出てきます。 セルの書式設定をみてみると、保護/ロックにチェックが入っておりました。もしかしたらこれが悪さをしているのでしょうか。 分かりにくくて申し訳ありませんが、知恵を貸していただけたら助かります。よろしくお願いいたします。

  • VBAで、結合したセルの位置を変えたい

    エクセル2007のVBAですが、たとえば結合したセルG11があります。 このセルに、マクロ実行時に値を渡してセルの場所を変えることはできますか? たとえば(横の値,縦の値)とし、(1,0)という値を渡すとセルの位置はH11となり、 (0,1)という値を渡すとG12となる。 (-1,0)ならF11、といった感じです。 可能でしょうか?よろしくお願いします。

  • 結合セルに名前をつけてマクロで取得は不可?

    お世話になります。 エクセル2000です。 セルを結合してそこに例えば 「DenDate」と名前をつけてマクロで ためしにMsgBox Target.Name.Nameと 書くと名前がついていないとみなされる みたいなのですが、やはり結合セルに 名前をつけたものは駄目なのでしょうか? それともやり方が拙いのでしょうか? 宜しくお願いします。

  • VBAでセル範囲の「名前の定義」の有無を取得

    エクセルのセル範囲(結合セル)にいろいろな名前を定義してあります。 名前の定義されたセル範囲を変更した場合、マクロが動くようにしたいのです。 ところが、名前の定義のないセルを変更すると 「実行時エラー1004、アプリケーション定義またはオブジェクトの定義のエラーです」 になってしまいます。 一応、下記のような方法で解決はできましたが、エラーで判断するのではなく、名前の定義の有無を取得して分岐させるのが正しい?やりかたなのではと思います。 ご教示いただけましたら幸いです。 Private Sub Worksheet_Change(ByVal Target As Range) Dim x As String On Error Resume Next x = Target.Cells(1).Name.Name On Error GoTo 0 If x = "" Then Exit Sub Select Case Target.Cells(1).Name.Name Case "住所" Range("送付先住所").Value = Target.Value Case "氏名" Range("送付先氏名").Value = Target.Value End Select End Sub

  • エクセル2013VBA結合セルの間のセル位置取得

    いつもお世話になってます。 エクセル2013VBAで質問です。 B3:B4セルが結合されています。また、C3:AG3セル(31セル分)も結合されています。 その時、C4:AG4セルを取得したいのですが位置がずれて思うように取得できません。 どのような指定をすればよろしいでしょうか? お手数ですがお願いいたします。 下記は試してみてだめだったもののうちの一つです。 Sub test() Range("B3").Offset(0, 1).MergeArea.Select Range("B3").Offset(1, 0).Resize(1, 31).Select End Sub

  • 結合セルの値取得について

    お世話になります、 (環境、VISTA&EXCEL2000) 結合セルに名前をつけて その値をマクロで取得したいのですが エラーになります。 結合セルには結合する前に名前をつけてから 結合してあります。 Dim ws As Worksheet ' On Error GoTo errTrap Set ws = Worksheets("xxxxx") '(1) ws.Range("DenDate").Value = Date '(2) MsgBox ws.Range("DenDate").Value (2)で「型が一致しません」になります。 宜しくお願いいたします。

  • VBAで任意の文字の右隣のセルの結合を解除したい

    エクセルの初心者です。VBAで困っています よろしくお願いします。 VBAで任意の文字を探し 右隣のセルの結合を解除したいのです。 その文字は必ずC列の中に2つあります。行はランダムで毎回違います。 作業の途中までのマクロは記録コマンドで作成し、ボタンも作成してあります。 できましたらなにぶん初心者ですので、分かりやすいシンプルなものを… これができれば後はまた記録したマクロにて作業ができます。 アドバイス よろしくお願いします!

専門家に質問してみよう