Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


11425 / 13646 ツリー ←次へ | 前へ→

【16136】全角ダブルコーテーションを取り除く処理 miyake 04/7/17(土) 10:43 質問[未読]
【16137】Re:全角ダブルコーテーションを取り除く処理 [名前なし] 04/7/17(土) 10:55 回答[未読]
【16138】Re:全角ダブルコーテーションを取り除く処理 かみちゃん 04/7/17(土) 11:01 回答[未読]
【16144】Re:全角ダブルコーテーションを取り除く処理 miyake 04/7/17(土) 16:01 質問[未読]
【16162】Re:全角ダブルコーテーションを取り除く処理 Hirofumi 04/7/18(日) 8:22 回答[未読]
【16167】Re:全角ダブルコーテーションを取り除く処理 miyake 04/7/19(月) 1:26 お礼[未読]

【16136】全角ダブルコーテーションを取り除く処理
質問  miyake  - 04/7/17(土) 10:43 -

引用なし
パスワード
   いつもお世話になっています。
エクセルデータ(CSV形式)をサーバーに登録するシステムを作っていますが、登録する際、不要な区切り記号を取り除きたいと思います。そこで質問です。
たとえば、フォーム上のテキストボックス(Textbox1)に文字を入力して、登録ボタンを押すと文字列がセルに転送されるとします。転送の際、Replace関数で文字列内の不要な区切り記号を取り除きたいのです。このときに、全角のダブルコーテーションを指定するとエラーになってしまいます。
Replace(Textbox1.Text, "”", "") 
何かいい方法はありませんか。

【16137】Re:全角ダブルコーテーションを取り除く...
回答  [名前なし]  - 04/7/17(土) 10:55 -

引用なし
パスワード
   Range("A1").Value = Replace(TextBox1.Text, Chr(-32408), "")

でどうでしょう。

【16138】Re:全角ダブルコーテーションを取り除く...
回答  かみちゃん  - 04/7/17(土) 11:01 -

引用なし
パスワード
   こんちには。かみちゃん です。

>たとえば、フォーム上のテキストボックス(Textbox1)に文字を入力して、登録ボタンを押すと文字列がセルに転送されるとします。転送の際、Replace関数で文字列内の不要な区切り記号を取り除きたいのです。このときに、全角のダブルコーテーションを指定するとエラーになってしまいます。
>Replace(Textbox1.Text, "”", "") 

全角ダブルクォーテーションは2つありますが、自動的に半角に変換されてしまうようなので、私は「“」はChr$(&H8167)で、「”」はChr$(&H8168)で取得するようにしています。

今回の場合は、
Replace(Textbox1.Text, Chr$(&H8168), "")
でいかがでしょうか?
WindowsXP、Excel2002で確認済みです。

【16144】Re:全角ダブルコーテーションを取り除く...
質問  miyake  - 04/7/17(土) 16:01 -

引用なし
パスワード
   [名前なし]さん、[かみちゃん]さんご教示ありがとうございます。
試したところ、 Chr(-32408)、 Chr$(&H8168)のいずれもうまくいきました。
ちなみに、この両者のコードの違いは何ですか。
また、chr関数の$マークはどのような意味なのでしょうか。それと、エクセルのcode関数で ” を調べると8521になりますが、 ” のコードはいくつになるのでしょうか。

【16162】Re:全角ダブルコーテーションを取り除く...
回答  Hirofumi  - 04/7/18(日) 8:22 -

引用なし
パスワード
   横から失礼します
うる覚えなので間違って居たらゴメン

>試したところ、 Chr(-32408)、 Chr$(&H8168)のいずれもうまくいきました。
>ちなみに、この両者のコードの違いは何ですか。

「”」のシフトJISコードの16進表現   = &H8168
「”」のシフトJISコードの整数10進表現 = -32408

で同じ物だと思います

>また、chr関数の$マークはどのような意味なのでしょうか。

これは、ChrのHelpで、関連項目等で「関数からの文字列の取得」と言う項目が有ると思いますので
それを参照して下さい

>それと、エクセルのcode関数で ” を調べると8521になりますが、
> ” のコードはいくつになるのでしょうか。

ExcelのWorkSheet関数の「Code関数」は、JISコードを返しますので、
8521は、JISコードの長整数10進表現の値です
因みに、16進表現だと、&H2149に成ります
VBAは、シフトJISコードですので、&H8168若しくは、-32408、33128&と成ります

また、

  Range("A1").Value = Replace(TextBox1.Text, """", "", , , vbTextCompare)

とすれば、全角、半角の「"」が同時に置き換えられると思います

【16167】Re:全角ダブルコーテーションを取り除く...
お礼  miyake  - 04/7/19(月) 1:26 -

引用なし
パスワード
   ▼Hirofumi さん:
大変参考になりました。ありがとうございます。

11425 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free