ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

初心者のためのExcel VBAコミュの教えてください。

  • mixiチェック
  • このエントリーをはてなブックマークに追加
はじめまして、パグと申します。

Excel VBAのレベルは、初心者です。
皆さん、よろしくお願いします。

Excel VBAで、セルの結合をしようと、VBAでコードで書いてみたんですが、、、

下記

Sub Macro1()

Range("B2:B6").Merge
Range("B2").MergeArea._
HorizontalAlignment = xlCenter
Range("B2:B6").BorderAround LineStyle:=xlContinuous
Range("B2:B6").WrapText = True

End Sub

Range("B2").MergeArea._の部分で、コンパイラ 構文エラーがでます。

コードの入力ミスなのか?それとも、他に理由があるのかわかりません。

よろしければ、教えてください。お願いいたします。

コメント(9)

こんにちは、いちろです

さっそく答えですけど
半角スペースが無いためコードの改行が出来てないですよ

Range("B2").MergeArea. _
HorizontalAlignment = xlCenter

コードを改行するには、半角スペースとアンダーバーが必要です
間違いではありませんが、Withを使うと同じオブジェクトに対して処理を行うときにコードを簡略化でき、処理効率も上がります。
ご参考までに・・・。

Option Explicit
Sub Macro1()
  With Range("B2:B6")
    .Merge
    .HorizontalAlignment = xlCenter
    .BorderAround LineStyle:=xlContinuous
    .WrapText = True
  End With
End Sub
.Merge は、 .MergeCells = True としたほうがいいですね。
訂正します。
こんばんわ

皆様、コメントして頂き、ありがとうございます。

コードを再度、確認したら、Range("B2").MergeArea._ のピリオドのあとに、半角スペースがなかったです。

教訓?

ステートメントを次の行に続けたい場合は、半角スペースとアンダーバーを要チェックです。

教訓?

Withを使うと同じオブジェクトに対して処理を行うときにコードを簡略化でき、処理効率も上がる。

Option Explicit
Sub Macro1()
  With Range("B2:B6")
    .Merge
    .HorizontalAlignment = xlCenter
    .BorderAround LineStyle:=xlContinuous
    .WrapText = True
  End With
End Sub

この点につきましては、まだ、勉強不足なので、すごく、参考になりました。


よろしければ、また、教えて頂きたいと思います。
よろしく、お願いいたします。

ああ、そうだ。
補足させて下さい。
今回はまっさらなセル範囲を結合するようなので必要ありませんが、
いくつかデータが書き込まれてるばあいは結合しようとすると確認ダイアログが出てしまいます。
なので下記のようにアラートを止めてしまいます。
で、必ず終わったらTrueにしてダイアログが出るように戻します。
適当な値を範囲内に打っておいて試してみてください。

Option Explicit
Sub Macro1()
  Application.DisplayAlerts = False
  With Range("B2:B6")
    .MergeCells = True
    .HorizontalAlignment = xlCenter
    .BorderAround LineStyle:=xlContinuous
    .WrapText = True
  End With
  Application.DisplayAlerts = True
End Sub
>>6
横槍失礼。

DisplayAlertsを使うのはいいのですが、出来れば必要最低限にした方が良いですよ。

そのほかの必要なダイアログまで非表示にしてしまいかねないので。
(今回の場合はその心配はなさそうですがww)

つうことで修正版 つ

Option Explicit
Sub Macro1()
  With Range("B2:B6")
    Application.DisplayAlerts = False
    .MergeCells = True
    Application.DisplayAlerts = True
    .HorizontalAlignment = xlCenter
    .BorderAround LineStyle:=xlContinuous
    .WrapText = True
  End With
End Sub
>魔流さん

必要最低限を心がけたほうがいいですね。
ご指摘ありがとうございますm(__)m
>>8
こちらこそ、毎度毎度細かい横槍ばかり失礼いたしました。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

初心者のためのExcel VBA 更新情報

初心者のためのExcel VBAのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング