ここから本文です

エクセルについてです。

cor********さん

2018/3/1922:12:09

エクセルについてです。

B5:AF31の範囲のセルに”*▼*”(出張▼など▼の前に言葉が入ったりします)が入力された場合に隣のセルに”▽”を入力したい場合のマクロのコードを下記のように入力しましたが動作しませんでした。
Sub 右隣に▽を入力()
For Each Rng In Selection
If Rng.Value Like"*▼*" Then
Rng.Offset(, 1) = "▽"
End If
Next
End Sub

ちなみに,最初はセルにif関数をいれて▽が出るようにしたのですが,違うシートからデータをコピーしてB5:AF31の範囲のセルに値で張り付ける作業をすると消えてしまったのでマクロが使えればと思ったのですが,マクロのコードの知識がないためわかりません。お詳しい方がいらっしゃいましたら教えてください。

補足アドバイスをいただいたコードを使って,
Private Sub Worksheet_Change(ByVal Target As Range)
For Each Rng In Selection
If IsNumeric(Application.Find("▼", Rng.Value)) Then
Rng.Offset(, 1) = "▽"
End If
Next
End Sub
とワークシートに入れたところ▼に言葉が入ったものを入力すると「実行時エラー2147417848(80010108)offsetメゾットは失敗しました。Rangeオブジェクト」と出てしまってデバックで開くとRng.Offset(, 1) = "▽"が黄色に塗られて協調されてでてきます。その後フリーズしてエクセルが強制終了してしまいます。どこを直してあげれば正しいコードになりますか?お分かりのかたがいましたら教えてください。

閲覧数:
76
回答数:
2
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

set********さん

2018/3/1922:22:27

下記の構文で試してみて下さい。

Sub 右隣に▽を入力()
For Each Rng In Selection
If InStr(Rng.Value, "▼") > 0 Then
Rng.Offset(, 1) = "▽"
End If
Next
End Sub

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2018/3/20 21:45:37

頂いたコードで動作しました!ありがとうございます!周りでマクロに詳しい方がいないためとても助かりました!!基礎的なところがもう少しわかるようにネットで勉強します。

ベストアンサー以外の回答

1〜1件/1件中

Prometheusさん

2018/3/1922:52:57

Sub 右隣に▽を入力()
For Each Rng In Selection
If Rng.Value Like"*▼*" Then
Rng.Offset(, 1) = "▽"
End If
Next
End Sub

質問者のマクロですと、これで完結しているように見えますが、「Selection」に対応する「Select」がありません。

Range("B5:AF31").Select

としてからか、

For Each Rng In Range("B5:AF31")

というように、範囲を設定してください。

If Rng.Value Like"*▼*" Then

については、「setuo_315さん」のおっしゃるとおりで、

If InStr(Rng.Value, "▼") > 0 Then

だと思います。

「InStr()」という関数は、文字列の中から、文字列が存在した場合、何文字目に存在するかを返す関数です。

たとえば「InStr("abcdef", "c")」なら、「c」は「3」文字目に存在しますから、「3」を返します。

しかし、「InStr("abcdef", "x")」なら、「x」は存在しませんから、「0」を返します。

したがって、返ってくる値が「0」より大きければ、「存在した」ということになります。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる