Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7 Professional : Excel 2007)
(の前の文字を取得したい
投稿日時: 18/10/17 12:06:53
投稿者: FILETUBE

前回はありがとうございました。
1つお聞きします。
 
セルの値から(の前の部分を取得したいので
下記のコードを書きましたが、エラーになってしまいます。
 
Dim vKMK AS String
vKMK = Left(wks.Cells(1, 1), Find("(", wks.Cells(1, 1) - 1)
 
例えば
あいう(A) でしたら
あいう を取得したいのです。
 
EXCELでは
=LEFT(A1,FIND("(",A1)-1)
でOKですが、VBAになるとどのようなコードになるのでしょうか?
分かる方おられました宜しくお願いします。

回答
投稿日時: 18/10/17 13:00:40
投稿者: 半平太

InStr 関数を使うことになると思います。
 
因みに「(」が無かったらどうするんですか?

投稿日時: 18/10/17 13:16:27
投稿者: FILETUBE

回答ありがとうございます。
なるほどVBAではInStr
vKMK = Left(wks.Cells(1, 1), InStr(wks.Cells(1, 1),"(") - 1)
 
でOKでした。
ちなみに無い場合は
vKMK = wks.Cells(1, 1)になりますが、
Instrの値で判断でしょうか。

回答
投稿日時: 18/10/17 13:29:54
投稿者: 半平太

>Instrの値で判断でしょうか。
 
そう言う方法もありますが、
最後に "(" を強制的に付加すると言う方法もあります。
 
>vKMK = Left(wks.Cells(1, 1), InStr(wks.Cells(1, 1), "(") - 1)
 
 vKMK = Left(wks.Cells(1, 1), InStr(wks.Cells(1, 1) & "(", "(") - 1)
                                                   ^^↑^^

投稿日時: 18/10/17 15:23:37
投稿者: FILETUBE

早速の回答ありがとうございました。
いろいろ勉強になりました。