Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Excel 2010)
VBAでクリックしているセルと右隣りのセルを結合する方法
投稿日時: 19/02/19 19:24:49
投稿者: ごまポッポ

お世話になります。
 
クリックしているセルと右隣りのセルと”セルを結合して中央揃”えする → ○印を記入 → 下のセルに移動
これをVBAで実行したいのですがうまくいきません。
 
 Range("A1:B1").Select
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Selection.Merge
    ActiveCell.FormulaR1C1 = "○"
    ActiveCell.Offset(1, 0).Activate
     
End Sub
 
1行目にようにセル番地を指定するとできるのですが、
任意のセル(クリックしているセル)とその右隣りのセルとを結合する方法がありますか?
 
よろしくお願いいたします。

回答
投稿日時: 19/02/19 19:54:58
投稿者: WinArrow
投稿者のウェブサイトに移動

このコードを
 どこのモジュールのどのようなプロシジャに記述していますか?
  
>クリックしているセル
という表現は、いまいちよく分からないですが、
とりあえず、選択されているセル(単一)と仮定して
 
1行目の
> Range("A1:B1").Select

Selection.Resize(,2).Select
に変更すればできます。
 
選択されているセルが、複数セルの場合は、いかがしましょうか?
 
 

回答
投稿日時: 19/02/19 21:06:10
投稿者: ピンク

>クリックしているセルと右隣りのセルと”セルを結合して中央揃”えする → ○印を記入 → 下のセルに移動
Sub Test()
    With ActiveCell.Resize(, 2)
        .Merge
        .HorizontalAlignment = xlCenter
    End With
    ActiveCell.Value = "○"
End Sub

回答
投稿日時: 19/02/19 21:08:10
投稿者: ピンク

>下のセルに移動
抜けていました。
Sub Test2()
    With ActiveCell.Resize(, 2)
        .Merge
        .HorizontalAlignment = xlCenter
    End With
    ActiveCell.Value = "○"
    ActiveCell.Offset(1).Select
End Sub
 

投稿日時: 19/02/19 21:16:27
投稿者: ごまポッポ

WinArrow 様、ピンク 様
回答有り難うございます。
 
すごい、出来ました。
Range("A1:B1").Select を変えればいいのはわかるのですが、
どう記述していいかわかりませんでした。
 
お二人まさに回答はどちらでも出来ました、
ありがとうございました。
 
 
 

回答
投稿日時: 19/02/19 21:51:59
投稿者: WinArrow
投稿者のウェブサイトに移動

>選択されているセルが、複数セルの場合は、いかがしましょうか?
 
に対する回答はないのですか?

投稿日時: 19/02/19 22:07:51
投稿者: ごまポッポ

WinArrow 様
 
>選択されているセルが、複数セルの場合は、いかがしましょうか?
 
すいません、1行目のセル選択が出来たところで嬉しくて回答するんを忘れたいました。
今のとこルセル選択は1ヶ所ずつ選択してマクロを実行するのでそちらは必要ありません。
 
 
この度はご親切にありがとうございました。
今後もどうぞよろしくお願い致します。