
助けてください。
Excelは関数を少し使ってるくらいのVB全くわかってないレベルで恐縮なのですが
仕事で以下のファイルを作る必要があり
検索などで色々調べているものの見事につまづいております。
作りたいファイルは、添付画像のように
列Fの結合セルにはテキストで "あいうえお" が
それぞれ入っているのですが
メモ下の結合セル内が
〇の時は列F4の結合セル、あいうえお(赤字)を削除して空白に。
×の時は列F11の結合セル、あいうえお(青字)はそのまま残す。
のようなマクロを組みたいです。
if分を使えば、、というイメージはありますが、型の指定など
諸々ちんぷんかんぷんでどのようにすればよいか苦慮しております。
可能であればコードをそのまま貼り付けられる状態で
教えていただけると嬉しいです。
よろしくお願いいたします。
![「[Excel VBA]特定の条件で文字を」の質問画像](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/1/543241362_66fa0a5a633b2/M.png)
No.3ベストアンサー
- 回答日時:
No1です。
>コンパイルエラー(Nextに対応するForがありません。)と表示されています。
>原因として何が考えられるかご教示いただけますでしょうか。
当方の環境では問題なく実行できます。
どのような方法で試しているのか不明ですけれど、タイポではありませんか?
この掲示板のコードをまるっとコピペしてもエラーが発生するのでしょうか?
仮にエラーになるにしても
>(Nextに対応するForがありません。)
が出るとは思えません。
>結合セルにしたとたんエラーになってしまいます
失礼しました。結合セルではClearContentsが使えないようですね。
以下に替えてみてください。
Sub Sample2()
For r = 6 To Cells(Rows.Count, 15).End(xlUp).Row Step 7
If Cells(r, 15).Value = "○" Then Cells(r - 2, 6).Value = Empty
Next r
End Sub
ありがとうございます!
お返事遅くなってしまって申し訳ありません。
おかげさまで希望する挙動が実現できました。
これを機にちゃんと勉強していきたいと思いました。
本当にありがとうございました!
No.4
- 回答日時:
ゴメン、変数名間違えた
(列END→行ENDに変える)
For 行 = 2 To 列END Step 7 '7行置きにループ
↓
For 行 = 2 To 行END Step 7 '7行置きにループ
これでチャント動きますよ。
ありがとうございます!
お返事遅くなってしまって申し訳ありません。
色々な構文?があるのですね!
ssawatake様からいただいたコードでも希望する挙動ができました。
No.2
- 回答日時:
sheet名がsheet1で有る場合を前提で。
Dim WS1 As Worksheet
Set WS1 = Worksheets("Sheet1")
行END = Range("O65536").End(xlUp).Row 'O列最終行をセット
For 行 = 2 To 列END Step 7 '7行置きにループ
If WS1.Range("O" & 行+4).Value = "○" Then
WS1.Range("F" & 行+2).Value = ""
END If
Next 行
No.1
- 回答日時:
こんにちは
説明の曖昧なところは勝手に解釈しました。
・対象セルが「○」「×」以外の場合はどうするのか不明なので、
『「〇」がある場合だけ空白にする』としています。
・表形式が不明ですが、7行ごとのセットが繰り返されていると解釈し、
O6セルから始めて、7行おきに値があるセルまで処理を繰り返します。
以下ご参考までに。
Sub Sample()
For r = 6 To Cells(Rows.Count, 15).End(xlUp).Row Step 7
If Cells(r, 15).Value = "○" Then Cells(r - 2, 6).ClearContents
Next r
End Sub
※ コード中の「○」の文字は異字体がいろいろありますので、実際にご使用になっている文字と合わせてください。
(文字が異なると、正しく判断できません)
早速ありがとうございます。
つたない説明で解析いただき感謝でございます。
ご推察通り「〇がある場合だけ空白にする」で全く問題ありません。
このコードを実行すると コンパイルエラー(Nextに対応するForがありません。)と表示されています。
End Ifを Next r の前につけてみましたが解消されず、、、
原因として何が考えられるかご教示いただけますでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
指定した文字があった場合、その行を削除するマクロが欲しいです
Excel(エクセル)
-
特定の文字がある行以外を削除するマクロ
その他(Microsoft Office)
-
【Excel VBA】複数ある特定の文字列を含む行を削除
Excel(エクセル)
-
-
4
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
5
エクセルである行以下全部を削除する方法
Excel(エクセル)
-
6
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
7
マクロ 特定のセル値のみクリアする
Visual Basic(VBA)
-
8
【VBA】特定の値が入った行をコピーして別シートに貼り付ける方法をおしえていただきたいです。
Excel(エクセル)
-
9
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
10
VBA 空白行に転記する
Visual Basic(VBA)
-
11
Excel VBA 空白セルがあったらメッセージボックスで知らせたい
Visual Basic(VBA)
-
12
Excel_マクロ_現在開いているシートにマクロを実行したいです
Visual Basic(VBA)
-
13
VBA 何かしら文字が入っていたら
Visual Basic(VBA)
-
14
Excel VBAで同じフォルダ内のファイルを開くには?
Excel(エクセル)
-
15
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
16
エクセルVBAで選択状態を解除のしかた
Excel(エクセル)
-
17
VBAで文字列を数値に変換したい
Excel(エクセル)
-
18
EXCEL VBAで、セルの文字列の前後に文字を入力する方法は?
その他(Microsoft Office)
-
19
連続データが入った行の一番右端の右側の空白セル
Excel(エクセル)
-
20
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでCOPYを繰り返すと、処理が...
-
【ExcelVBA】5万行以上のデー...
-
【マクロ】開いているブックの...
-
Vba セルの4辺について罫線が有...
-
VBAでユーザーフォームを指定回...
-
Vba Array関数について教えてく...
-
【マクロ】シートの変数へ入れ...
-
算術演算子「¥」の意味について
-
[VB.net] ボタン(Flat)のEnable...
-
vbaにてseleniumを使用したedge...
-
vbsでのwebフォームへの入力制限?
-
エクセルのマクロについて教え...
-
エクセルの改行について
-
【マクロ】並び替えの範囲が、...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
vb.net(vs2022)のtextboxのデザ...
-
エクセルのVBAコードと数式につ...
-
Excelのマクロについて教えてく...
-
ダブルクリックで貼り付けた画...
-
Excelのマクロについて教えてく...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Vba Array関数について教えてく...
-
VBAでCOPYを繰り返すと、処理が...
-
【ExcelVBA】5万行以上のデー...
-
【マクロ】シートの変数へ入れ...
-
vbsでのwebフォームへの入力制限?
-
エクセルのマクロについて教え...
-
【マクロ】並び替えの範囲が、...
-
Vba セルの4辺について罫線が有...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
VBAでユーザーフォームを指定回...
-
【マクロ】開いているブックの...
-
エクセルの改行について
-
vb.net(vs2022)のtextboxのデザ...
-
エクセルのVBAコードと数式につ...
-
算術演算子「¥」の意味について
-
Excelのマクロについて教えてく...
-
改行文字「vbCrLf」とは
-
ワードの図形にマクロを登録で...
-
VBAの「To」という語句について
-
【マクロ】変数を使った、文字...
おすすめ情報
単一セルだとみなさんから教えていただいた方法でできたのですが
結合セルにしたとたんエラーになってしまいます。