
助けてください。
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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel VBAについて【図形を組み合わせて作成した、料金別納表示の削除の仕方】 5 2023/11/16 01:27
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Excel(エクセル) Excelのマクロについてご教授ください 2 2023/02/25 09:43
- Excel(エクセル) 列の総当たりチェックの方法 3 2023/10/15 15:19
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Excel(エクセル) エクセル関数に詳しい方、教えてください(テキスト関数と条件付書式) 1 2024/04/11 02:44
- Excel(エクセル) Excelについて質問です(ver2019) 1 2023/06/30 21:20
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
このQ&Aを見た人はこんなQ&Aも見ています
-
VBA コードどこがおかしいですか?
Visual Basic(VBA)
-
エクセル タブの下のメニューを選択 実行するコード
Visual Basic(VBA)
-
VBAでセルの書式を変えずに文字列を置換する方法をご教示ください
Visual Basic(VBA)
-
-
4
エクセル マクロVBAについて教えてください。
その他(Microsoft Office)
-
5
【ExcelVBA】5万行以上のデータ比較の効率的な処理方法について
Visual Basic(VBA)
-
6
VBAで特定の文字が入った行をコピーして貼り付けたい
Visual Basic(VBA)
-
7
Excel VBAについて。こんな動作をさせるためにはどう書けばよいでしょうか。
Visual Basic(VBA)
-
8
指定した文字があった場合、その行を削除するマクロが欲しいです
Excel(エクセル)
-
9
Excel_VBAについて質疑です。(for~next)
Visual Basic(VBA)
-
10
VBA初心者です。次のVBAコードで、17行目を削除したいのですがうまく動きません 改善策を教えてく
Visual Basic(VBA)
-
11
【VBA】値を変更しながら連続でPDFを作成し,それらに印刷設定をした状態で結合するコード
Visual Basic(VBA)
-
12
VBA 入力箇所指定方法
Visual Basic(VBA)
-
13
VBA 2次元配列の出力
Visual Basic(VBA)
-
14
VBA Application.Matchについての質問です
Visual Basic(VBA)
-
15
Excel マクロについて詳しい方、ご教示ください。 『行数が毎回変わる元データの、A列に「1」と入
Visual Basic(VBA)
-
16
VBAのエラー表示の対処法について
Visual Basic(VBA)
-
17
EXCEL vbaでシート上に配置したボタンの移動については
Visual Basic(VBA)
-
18
考えた式の戻り値が期待通りにならない
Excel(エクセル)
-
19
エクセル 入力があった場合のみ隣の関数を表示
Excel(エクセル)
-
20
【ExcelVBA】dictionaryの重複判断の基準(セル結合だと違う値として認識される)
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【ExcelVBA】5万行以上のデー...
-
Vba セルの4辺について罫線が有...
-
vbsでのwebフォームへの入力制限?
-
2つのマクロでチェックボックス...
-
Web画面の文字をVB6で取得したい
-
[VB.net] ボタン(Flat)のEnable...
-
VBA ユーザーフォーム ボタンク...
-
WindowsのOutlook を VBA から...
-
VBAでセルの書式を変えずに文字...
-
VBAでCOPYを繰り返すと、処理が...
-
エクセルのマクロについて教え...
-
エクセルの改行について
-
vb.net(vs2022)のtextboxのデザ...
-
【ExcelVBA】値を変更しながら...
-
現在のブックを閉じないで、マ...
-
Excelマクロで、ピボットテーブ...
-
Excelのマクロについて教えてく...
-
エクセルでCDOを使ったメール送...
-
ExcelのVBAコードについて教え...
-
エクセルのVBAコードについて教...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロVBAについて、コードを教...
-
testファイル内にある複数のpng...
-
改行文字「vbCrLf」とは
-
エクセルVBA 検索結果を隣のシ...
-
vb.net(vs2022)のtextboxのデザ...
-
エクセルのVBAコードと数式につ...
-
【マクロ】切取りの場合、形式...
-
【ExcelVBA】5万行以上のデー...
-
ExcelVBAでパワポを操作したい
-
(EXCEL超初心者)EXCELの関数(ま...
-
エクセルの改行について
-
Excelマクロで使うVBAコードを...
-
ワードの図形にマクロを登録で...
-
【マクロ】変数を使った、文字...
-
VBAでFOR NEXT分を Application...
-
VBAの質問(Msgboxについて)です
-
エクセルのVBAコードについて教...
-
Excelマクロで使うVBAコードを...
-
Excelのマクロについて教えてく...
-
VBAの「To」という語句について
おすすめ情報
単一セルだとみなさんから教えていただいた方法でできたのですが
結合セルにしたとたんエラーになってしまいます。