人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルのVBAについて質問です。

IF文を使ってセルに書いてある情報によって出力を4通りに分けたいと考えています。

まずデータが入力されているセル(データ判定のセル)に S という文字が含まれていた場合 IF文が書いてあるセルにはSと出力されます。
次にデータが入力されているセル(データ判定のセル)に M という文字が含まれていた場合 IF文が書いてあるセルにはMと出力されます。
次にデータが入力されているセル(データ判定のセル)に L という文字が含まれていた場合 IF文が書いてあるセルにはLと出力されます。
それ以外の場合 IF文が書いてあるところに-(横線)と出力されます。

上記のように出力されるIF文を書いていただいてよろしいでしょうか。

お手数をおかけしますがよろしくお願いします。



●質問者: aiomock
●カテゴリ:コンピュータ インターネット
✍キーワード:VBA エクセル セル データ 入力
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● pahoo
●23ポイント ベストアンサー

VBA ではなく、Excel関数を使った方法をお求めではないでしょうか?


だとすると、目的のセルに下記のような関数を書けばいいでしょう。

=IF(ISERROR(FIND("S",データ判定セル))=FALSE,"S",IF(ISERROR(FIND("M",データ判定セル))=FALSE,"M",IF(ISERROR(FIND("L",データ判定セル))=FALSE,"L","-")))

なお、データ判定セルに S, M, L が混在していた場合、S>M>L の優先順位で表示します。

◎質問者からの返答

ご回答ありがとうございます。


2 ● van-dine
●23ポイント
Function Judge(R As Range) As String 'R:判定用セル
 If InStr(1, R.Value, "L") <> 0 Then
 Judge = "L"
 ElseIf InStr(1, R.Value, "M") <> 0 Then
 Judge = "M"
 ElseIf InStr(1, R.Value, "S") <> 0 Then
 Judge = "S"
 Else
 Judge = "-"
 End If
End Function

これでいけると思います。

◎質問者からの返答

ご回答ありがとうございます。


3 ● lowstar
●22ポイント

VBAを使った方法ですと、標準モジュールにユーザ関数を作成する方法が簡単かと思います。

ユーザ関数とは、sumなどの関数ようにシートで使える関数を自作できる機能です。

ユーザ関数は、ALT+F11で表示されるVBAエディタにコードを追加します。

ユーザ関数がエクセルブック内のどこでも使用できるようにするには、標準モジュール内にコードを書けばいいです。

VBAエディタの標準モジュールを右クリックして、挿入→標準モジュールと操作すると、Module1が作成されます。

そこに下記のコードをコピー&ペーストで書き込んでみてください。

■標準モジュール(Module1)のVBAコード

Function SML(セル As Range)

SML = "-"

If InStr(セル, "S") Then SML = "S"

If InStr(セル, "M") Then SML = "M"

If InStr(セル, "L") Then SML = "L"

End Function

■シート側での使い方

データが入力されているセル(データ判定のセル)を"B1"、IF文が書いてあるセルを"C1"とした場合、

C1セルに

=SML(B1)

と書けば、B1の内容に応じて、"S"か"L"か"M"か"-"の結果が表示されます。

エクセルの標準関数のように扱えるので便利かと思います。

◎質問者からの返答

ご回答ありがとうございます。


4 ● HALSPECIAL
●22ポイント

A1にデータ

B1に数式(IF文)

の場合


=IF(ISERROR(FIND("S",A1)),
 IF(ISERROR(FIND("M",A1)),
 IF(ISERROR(FIND("L",A1)),"-","L"),"M"),"S")

になります。

◎質問者からの返答

ご回答ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ