
No.3ベストアンサー
- 回答日時:
回答しようとしたら新年があけましたね。
明けましておめでとうございます。
ところで
マクロを実行させるタイミングをイベントと呼びます。
マクロのイベントの中に、関数の結果が空白だった場合に
特定のマクロを実行させるという機能はありません。
それに近いもので言えば、セルの値が変更された場合
に実行させるという Changeイベントがあります。
つまり、Vlookupの検索値のセルが変更されて
Vlookup関数を入れているセルの値が空白だった場合に
斜線の入れるというマクロを組むことになります。
逆に空白でなかったら、斜線を外すと処理も必要になります。
Vlookup関数がどこに入っていて、どのような関数なのかもわかなければ
手出しができませんし、初心者が理解するにちょっと敷居が高いかもしれません。
代替案ですが、Vlookup関数を
IF文と組み合わせにして 空白だったら -- を表示させるとかではダメなのでしょうか。
斜線を入れるマクロと斜線を消すマクロの2つを組んでみました。
Sub セルが空白なら斜線()
Dim i As Integer, j As Integer
For i = 112 To 117
For j = 47 To 73
If Cells(i, j).Value = "" Then '0の場合
Cells(i, j).Borders(xlDiagonalDown).LineStyle = xlContinuous
Cells(i, j).Borders.LineStyle = xlContinuous
Else
Cells(i, j).Borders.LineStyle = xlContinuous
End If
Next j
Next i
End Sub
Sub 斜線を消す()
Dim i As Integer, j As Integer
For i = 112 To 117
For j = 47 To 73
Cells(i, j).Borders(xlDiagonalDown).LineStyle = xlNone
Cells(i, j).Borders.LineStyle = xlContinuous
Next j
Next i
End Sub
斜線を消して,また入れてということをしています。changeイベントを使うと良さそうですね!
No.2
- 回答日時:
基本手順:
ALT+F11を押す
現れた画面で挿入メニューから標準モジュールを挿入する
現れたシートに下記をコピー貼り付ける
sub macro1()
dim h as range
for each h in selection
if h.value = "" then
h.borders(xldiagonalup).linestyle = xlcontinuous
end if
next
end sub
ファイルメニューから終了してエクセルに戻る
あなたがVLOOKUP関数を記入しているセル範囲を選ぶ
ALT+F8を押してマクロを実行する
次のステップ:
そもそも「どこのセル範囲に対して」ご相談のような一連の事をしたいと思ってるのか、そこから始まります。言い換えると、あなたは具体的にどこのセル範囲にVLOOKUP関数を記入してるのですか、ということです。
通常、ご相談のようなマクロを考えるに当たっては、具体的な表のレイアウト(何列には何を、どこ列には問題のVLOOKUP関数を記入している)は既に出来上がっています。その出来上がった表に対して、適切にマクロを準備していきます。今回はそういう前提条件が何も示されていないので、わざわざ「対象範囲を手で選択しておいてからマクロを実行する」みたいな、無駄な手間が入りました。
それとも?VLOOKUP関数がどこに記入されてるのか事前には不明で決められないので、VLOOKUP関数が記入されたセルをエクセルに探させるところからマクロにしたいのでしょうか。ヤリタイ事が増えていけば、当然マクロはそれだけ複雑に、難易度も上がっていきます。
それから、今問題の「空白を返すVLOOKUP関数」は、ホントに空白("")を計算しているのですか?
非常にしばしば、たとえば「実はゼロを返してるけど見た目上ゼロを表示してないので空白に見えてるだけだった」とか、空白じゃなく違うものを計算してるのを説明できてなくて教わったマクロが動かないご相談とか、よく見かけます。
No.1
- 回答日時:
以下で自作関数のネタを作る
1)リボンの左から2番目、「マクロ」の右の▽をクリック
2)「マクロの記録」をクリック
3)どこかのセルを選択し、斜線引く処理を行う
4)「記録終了」をクリック
> vlookupで返された値が空白の場合に斜線を引きたい
iF文でvlookupの戻り値を判断し、空白なら上記の関数を呼ぶ
ただし、「3)で選択したセル」は常に変らないので
自作関数の引数に自セルを渡す→受取側(=自作関数)は
引数のセルに斜線引くに変更が必要
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの表でダブりを解消する方法を、教えてください。 5 2023/04/12 12:11
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- Excel(エクセル) Formulaプロパティーを使ってセルに数式を組んだのですが簡潔にしたい。 3 2022/08/21 20:51
- その他(Microsoft Office) エクセルについて教えてください。 2 2022/10/20 14:55
- Visual Basic(VBA) ExcelVBAのマクロについて。 9 2022/05/04 14:50
- Excel(エクセル) Excel2016 行間を詰めたい&同じカテゴリなら上位2つだけを表示したい 5 2022/06/03 12:19
- Excel(エクセル) マクロを簡潔にしたい 6 2022/09/16 10:37
- Visual Basic(VBA) VBAを使いシート間で貼り付け 3 2023/03/14 20:53
- Excel(エクセル) マクロでボタンにつける名前がどこに設定されているかわからないケースがありました。 1 2023/06/19 19:37
- Excel(エクセル) Excel_マクロ_複数のシートのVLOOKUPで表示された#N/A以外に色付けをしたいです 1 2023/02/16 22:37
このQ&Aを見た人はこんなQ&Aも見ています
-
Excelの関数について、特定の文字を入れると斜線や線を入れることは出来ますか?
Excel(エクセル)
-
エクセルの質問です。条件によってセルに斜線を引きたいのですが。
その他(OS)
-
Excel データ入力に応じて自動的に斜線を引きたいのですが
Excel(エクセル)
-
-
4
条件付き書式で自動で斜線の罫線を引く
Excel(エクセル)
-
5
excel 空白セルに自動で斜線をひきたいです
Excel(エクセル)
-
6
エクセル 結合セル内に空白なら斜線を引くマクロ
Excel(エクセル)
-
7
エクセルで条件付きで罫線の斜線を引きたいです。
その他(Microsoft Office)
-
8
vlookup にて、返す値が、空白の場合に、任意の文字列を表示するには?
Excel(エクセル)
-
9
罫線の斜線を自動で引くマクロ
Excel(エクセル)
-
10
Excel(VBA)データ入力に応じて複数範囲のセルの上に1本の斜線を引きたい
Excel(エクセル)
-
11
結合したセルを含む列内で、条件付き書式として塗りつぶしたい
Excel(エクセル)
-
12
Excelでセル参照したとき、書式も一緒に持ってくるには?
Windows Vista・XP
-
13
Excel VBA 条件に一致した言葉の下セルに斜線をひきたい
Visual Basic(VBA)
-
14
空白セル内の数式を残したままで空白セル扱いとしたいのですが
Excel(エクセル)
-
15
「B列が日曜の場合」C列に/(斜線)が入るようにならないものでしょうか?
Excel(エクセル)
-
16
エクセル関数を教えてください 空白セルの合計数と斜線セルの合計数を出したいのですがどのような計算式な
Excel(エクセル)
-
17
エクセルで0を除いて昇順に並べ替えできますか
Excel(エクセル)
-
18
あるセルに特定の文字列を打つと、他のセルに決められた文字が自動入力するように
Excel(エクセル)
-
19
条件に一致したときに画像を表示したいのですが・・。
Excel(エクセル)
-
20
複数の文字列のいずれかが含まれていたらTRUEを返す関数について
Excel(エクセル)
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Googleスプレッドシートで合計...
-
【EXCEL】関数で計算された数字...
-
Excelで合計の金額を違うセルに...
-
エクセル .50以下で切り捨て、...
-
他シートのある列を検索して一...
-
エクセルで0.0と表示したい
-
numbersで累計を計算するには
-
Excelマクロに詳しい方教えてく...
-
excelで小数点0を表示させる方法
-
vlookupで返された値が空白だっ...
-
エクセル→セルの書式設定→表示...
-
セルの数式を計算させないで文...
-
エクセルの文字列を結合しても...
-
EXCELで上位10個のデータを平均...
-
word の文字入力 文字が青色に...
-
ローマ字入力で「トゥ」を入力...
-
1点の辻の字に変換したいがエク...
-
「未使用」と「不使用」ってど...
-
Excelでエラー(#N/Aなど)値を...
-
VLOOKUP関数についての質問です...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
他シートのある列を検索して一...
-
Googleスプレッドシートで合計...
-
【EXCEL】関数で計算された数字...
-
vlookupで返された値が空白だっ...
-
excelで小数点0を表示させる方法
-
エクセルで0.0と表示したい
-
エクセル 絶対値の合計
-
エクセルの文字列を結合しても...
-
エクセル .50以下で切り捨て、...
-
セルの数式を計算させないで文...
-
Excel VBAにてUserFormのTextBo...
-
Excelで合計の金額を違うセルに...
-
EXCEL VBA 選択範囲をTargetに
-
Excelで方眼紙を作り、そこに手...
-
エクセルつくったグラフで10月...
-
エクセル 背景色のついたセル位...
-
マクロ クリックしたら色変わる
-
エクセルへバーコードリーダー...
-
EXCELで上位10個のデータを平均...
-
エクセルで運賃計算
おすすめ情報