Home » Excel VBA Rangeオブジェクト » セル数式 » VBAからTEXT関数を入力する

VBAからTEXT関数を入力する

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

「vbaでセルにtext関数をいれる」
「excel vba 数式 マクロ text関数 表示形式 formula」
といった検索キーワードで、このサイト・インストラクターのネタ帳へのアクセスがありました。
Excel VBA(Visual Basic for Applications)から、セルにTEXT関数を入力するには、どうすればいいのかを探していた方による検索です。

TEXT関数では第2引数に、

VBAからTEXT関数を入力する

どのような表示形式にするかを、「"」(ダブルクォーテーション・ダブルクォート)で括って指定します。

この第2引数・表示形式を、VBAのコードから、どうやって指定すればいいのかがわからなかったのだろうと推測しています。

「excel マクロ text関数= "=text(g3," & aaa & ")"をマクロで入力する方法 ダブルクォーテーションを入れたい」
という検索キーワードからは、試行錯誤してらっしゃる様子が、リアルに読み取れます。

[スポンサードリンク]

VBAからダブルクォーテーションを入力する方法

このダブルクォーテーションの問題は、TEXT関数に限った話ではありません。
VBAから「"」を入力する場合に、多くの方がつまずくポイントです。

どうすればいいかというと、ダブルクォーテーションを2つ書きます。

VBAのコードの中でダブルクォーテーションを、「""」のように2個並べておくと、実際には文字列としてのダブルクォーテーション「"」1個が入力されます。

TEXT関数を入力するサンプルマクロ

TEXT関数を入力する具体例をご紹介しておきましょう。
Sub TEXT関数を入力する()
 Range("B1").Formula = "=TEXT(A1, ""yyyymmdd"")"
End Sub

上記のSubプロシージャを実行すると、アクティブなシートのB1セルに
  =TEXT(A1, "yyyymmdd")
という数式が入力されます。

代入演算子としての「=」と、
  Range("B1").Formula = "=TEXT(A1, ""yyyymmdd"")"
数式の先頭に入力する文字列としての「=」が存在するのと、
  Range("B1").Formula = "=TEXT(A1, ""yyyymmdd"")"
ダブルクォーテーションがいくつか並んでいるので、
  Range("B1").Formula = "=TEXT(A1, ""yyyymmdd"")"
VBAのコードを見慣れない方は、どれが何のダブルクォーテーションなのか、見分け辛いかもしれません。

まず、数式の入力を行っている代入文の、
  Range("B1").Formula = "=TEXT(A1, ""yyyymmdd"")"
右辺全体を括っている「"」は、
  Range("B1").Formula = "=TEXT(A1, ""yyyymmdd"")"
通常の文字列を括る「"」です。

例えば、B1セルに「イロハ」という文字列を入力するなら、
  Range("B1").Value = "イロハ"
と書きます。この「"」と同じです。

この記事のポイントである「"」は、このプロシージャを実行すると入力される、TEXT関数の第2引数に指定する「yyyymmdd」を括っている、
  Range("B1").Formula = "=TEXT(A1, ""yyyymmdd"")"
です。
これが「""」とダブルクォーテーション2個です。

[スポンサードリンク]

Home » Excel VBA Rangeオブジェクト » セル数式 » VBAからTEXT関数を入力する

「セル数式」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.