韜晦日記

韜晦日記

Rietveldよりもプログラミングメインになりつつある

Rietveld解析初心者による備忘録とつぶやき

VBAについて No.2

VBA2の前にVBA3投稿してた。

VBAで改行を入れる

VBAを書いているとき、どうしても一文が長くなってしまう場合がありますよね。
そんな時は改行すればいいのです。何を偉そうに言ってんだか。
しかし、以下の書き方ではエラーが発生します。


Worksheets("Sheet1").Cells(1, 1).Value =
Worksheets("Sheet1").Cells(2, 1).Value

VBAで改行する際は[ _](半角スペース+アンダーバー)を使います。これを改行文字, 行継続文字といいます。
正しい書き方は


Worksheets("Sheet1").Cells(1, 1).Value = _

  Worksheets("Sheet1").Cells(2, 1).Value

となります。

新しいシートの挿入

ワークシートを挿入するときは、WorksheetsコレクションのAddメソッドを使います。
Addメソッドの構文は


.Add(Before, After, Count, Type)

引数のBefore, Afterは指定したシートの後ろに挿入するか前に挿入するか指示するものです。当然どちらか一方選んだらもう一方は選択できません。
引数Countは挿入するシートの数を指定。
引数Typeは挿入するシートの種類を指定。

ほんで新しいシートを最後尾に作成し、名前を変更するときに個人的シンプルで短いのは以下の様に、Withステートメントを活用した書き方です。

    Dim sheetname As String
    sheetname = "うんち"
    With Worksheets.Add(after:=Worksheets(Worksheets.Count))
    .Name = sheetname
    End With

とすることでうんちシートが最後尾に新規作成されました。
f:id:tanisuke_str:20170829000042p:plain:h80:w80

下品ですみません。なんだか私、疲れちゃったの。(嘘)
実はかなり長い記事を書いていたのですが、長くなりすぎて終わらなかったので簡単に書きたかったことをかきますた。