“(ダブルクォーテーション)を文字列として扱うには?

ダブルクォーテーションとは、なにか?

ダブルクォーテーションとは、[”]の記号です。

Web ページで使うときは、文章を囲む記号として使いますが、プログラムやエクセルなどの計算式で使う場合は、[”]ダブルクォーテーションは、文字列を表すときの符号として使います。このページでは、プログラムや計算式として[”]ダブルクォーテーションを使うことについて説明します。

コンピュータで数式を書く時は、数字と文字を区別する必要があります。

100+200と記述した場合は、数字の100と200を足すので、結果は、300 になります。

文字列の 「100」と「200」をくっつける場合は、結果として「100200」のような文字列を取得したいのです。

このような場合、「100」は、数字ではなく文字列として処理してくださいとコンピュータに伝える必要があります。

「100」が、文字列だと伝える方法が、下記のような記述になるのです。

“100”+”200″

つまり、文字列の「100」と「200」をくっつけてください。と表現するときに、数字をダブルクォーテンション[”]で、文字列を囲むことで、数字を文字列として処理するのです。


[広告]

20150331_1

エクセルのセルにダブルクォーテーションを表示するには

ダブルクォーテーション( ” )を表示しようとするとエラーになります。

” は、文字列を囲む記号だからです。

上の図は、左側が通常の表示画面、右側が数式表示した画面です。

4行目は、セルに「A」を入力した場合です。

5行目は、数式で入力して「A」を ” で囲んだ計算式の場合です。

” を文字として表示するには、 ” を2回続けて記述します。

6行目は、 ” を「A」の両サイドに文字として表示する場合の例です。

” が、3回続いているのは、最初(1番左)と最後(1番右)の ” は、文字列「”A”」を囲むための記号の役割をしている ” です。「A」の両脇の ” ” は2度繰り返していますので2つの ” で1つの文字 ” として表示されていることがわかると思います。

さらに困惑するのが、「“”」と「〝〟」の違いで、「ダブルミニュート(引用符)」です。これは、日本語用の引用符で、ホームページなどでの表現でプログラムコードの記述には発生しません。ダブルミニュートについては、別途詳しく説明します。

今回は、文字列を表現するための記号、ダブルクォーテーション( ” )について説明します。

 


【VBAで記述する場合について】

VBAでコードを記述していると必ずぶつかるのは、ダブルクォーテーションの取り扱いです。

「”」は、文字列を囲むための記号です。

マクロを使うようになり、VBAコードを記述するようになると、変数を使ってVBAコードを書くようになります。変数を使用するようになると数値と文字列の違いを意識しなければなりません。この段階で必ずぶつかる問題が「”」ダブルクォーテーションの取り扱い方です。

Access や Excel の VBA を使ってデータや計算式を作成しようとしたときに「”」ダブルクォーテーションの使い方を正確に理解しておく必要があります。

 

ダブルクォーテーションを普通の1文字の文字列として記入すると、エラーになります。

では、ダブルクォーテーションを文字列として記述するにはどうしたらいいのでしょうか。
wa1101

wa1102

wa1103

その前に、文字列と数値は違うってことを理解している方だけお読みください。

エクセルで「”」(ダブルクォーテーション)を文字列として扱うには、「”」を2度繰り返して書けばいいのを知ってますか。

今日の質問は、それが答えでした。

例えば、
B1セルに「HAL 9000 said 」
C1セルに「”Hello, World!”」
と入力しておいて
「=B1&C1」
という数式を入力すれば

「HAL 9000 said “Hello, World!”」
という文字列が表示されます。

この質問をする方は、当然ながら
「= “HAL 9000 said ” & “”Hello, World!””」
といった数式を試していることがほとんどです。

 

「”」の中の「”」は2度「”」を書くと正しく認識されます。

 

「= “HAL 9000 said ” & “””Hello, World!”””」
という数式が正解です。

 

Excelの数式の中で、ダブルクォーテーション自体を文字列として扱うにはダブルクォーテーションを2つにしなければいけません。

ダブルクォーテーション2つ「””」に、文字列をくくるための「”」も加わって、「”””」と3つになるわけです。

「”””Hello」の先頭の「”」が、数式の中で文字列を扱うときにくくるための「”」、次の「””」が「”」を文字列として表示するためのものです。

同じく、「World!”””」の最後「”」が、数式の中で文字列を扱うときにくくる「”」、その前の「””」が文字列としての「”」です。

 

つまり、ダブルクォーテーションを2度繰り返して記述するとダブルクォーテーション2文字が、1文字のダブルクォーテーションとして扱われるということです。

[広告]

 


▼VBA(マクロ)でセルに計算式を設定する場合のダブルクォーテーションの使い方

例えば、セルに計算式を設定するVBA(マクロ)を記述しようとすると

Range(”A1”)=”=Range(”B1”)” と考えます。

「=Range(”B1”)」を文字列として設定するには、ダブルクォーテーションを2回記述しなければいけません。

Range(”A1”)=”=Range(””B1””)” となります。

 

また、B1の行の値(1)を変数で設定したい場合などは、

Dim  w行 As Integer

w行を整数の変数とした場合は、

Range(”A1”)=”=Range(””B1””)”

「=Range(”B」 + w行 + 「”)」のように書きたいわけですが、数値を文字列に変換しないといけません。

 

数値を文字列変換するには、Str関数を使います。

Str(w行)と記述すると、返ってくる値は「 1」となり、先頭にスペースが挿入されます。そのためスペースを取り除くにはTrim関数を使ってください。

Trim(Str(w行)) と書くと「1」が返ってきます。

 

つまり、正しくは次のような記述になります。

Range(”A1”)=”=Range(””B” & Trim(Str(w行)) & ”””)”

VBA(マクロ)を使って数値を文字列として取り扱う場合は、挿入されるスペースやダブルクォーテーションの使い方にに気を付けましょう。

 


Excel と データベース を連携して活用するには、「カードボックス BARI」をご利用ください。

かんたんにデータベースを作成して、Excel と連携できます。



[広告]

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Optionally add an image (JPEG only)