Excel VBA質問箱 IV

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

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


10998 / 13644 ツリー ←次へ | 前へ→

【18738】セルの文字列をコピー ぴんとか 04/10/7(木) 22:37 質問[未読]
【18740】Re:セルの文字列をコピー ちゃっぴ 04/10/7(木) 23:20 回答[未読]
【18742】Re:セルの文字列をコピー Asaki 04/10/8(金) 1:07 発言[未読]
【18748】Re:セルの文字列をコピー Jaka 04/10/8(金) 12:18 回答[未読]
【18750】Re:セルの文字列をコピー ぴんとか 04/10/8(金) 18:31 お礼[未読]

【18738】セルの文字列をコピー
質問  ぴんとか  - 04/10/7(木) 22:37 -

引用なし
パスワード
   2つ目の質問です。申し訳ありません。

セル内に文字列が 「AAAA_BBBB」とあったときに、AAAA(アンダーバーよりも前部分)を
取得したいのですが。

列には
AAAA_BBBB  →   AAAA
AA_FFFF   →   AA
SSSS_FFFF  →   SSSS
QQQQ_BBBB  →   QQQQ

とはいっていて、いずれも アンダーバーよりも前部分を取りたいのです。


単純なコピーはできました。また、ループでまわすようにもしていますので
もうひと工夫という感じなのかもしれないのですが、
いかんせん、VBA歴1週間足らずのため、経験が少なく
勘もいまいちな状態で、質問の仕方も失礼かもしれませんが
どうぞよろしくお願いします。

【18740】Re:セルの文字列をコピー
回答  ちゃっぴ  - 04/10/7(木) 23:20 -

引用なし
パスワード
   ▼ぴんとか さん:
>2つ目の質問です。申し訳ありません。
>
>セル内に文字列が 「AAAA_BBBB」とあったときに、AAAA(アンダーバーよりも前部分)を
>取得したいのですが。

文字列操作するVBAの関数を勉強したほうがいいでしょうね。

アンダーバーよりも前部分ということなので、
まず最初にやることは、アンダーバーの位置(先頭からの文字数)を
取得することです。

こいつはInStr関数を使用すればできます。

次に先頭からアンダーバーの一字手前までの文字列を
取り出します。

こいつに関しては、Left関数が使えるでしょう。

文字列を自由自在に操作したいのであれば、以下のキーワードを
ヘルプで調べた上で、いろいろ実験してみるとよいでしょう。

InStr, InStrRev, Len, LenB, Right, Left, Mid, StrConv, StrComp

【18742】Re:セルの文字列をコピー
発言  Asaki  - 04/10/8(金) 1:07 -

引用なし
パスワード
   こんばんは。

ヴァージョンが2000以降になりますが、
分割する
と考えて、Split() あたりもヘルプで見てみてください。
今回の場合は、ちょっと使いにくいかもしれませんが。

【18748】Re:セルの文字列をコピー
回答  Jaka  - 04/10/8(金) 12:18 -

引用なし
パスワード
   エクセルの関数で出来ます。

=IF(ISERROR(FIND("_",A3,1)),"",LEFT(A3,FIND("_",A3,1)-1))

【18750】Re:セルの文字列をコピー
お礼  ぴんとか  - 04/10/8(金) 18:31 -

引用なし
パスワード
   ちゃっぴさん、
Asakiさん、
Jakaさん

ありがとうございました。

くだらない質問、レベルの低い質問にお答えいただき
本当にありがとうございました。

まだまだ勉強不足で、調べ方さえも
思いつかず、本当にご迷惑をおかけしました。

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