
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Excelの関数について、特定の文字を入れると斜線や線を入れることは出来ますか?
Excel(エクセル)
-
エクセルの質問です。条件によってセルに斜線を引きたいのですが。
その他(OS)
-
Excel データ入力に応じて自動的に斜線を引きたいのですが
Excel(エクセル)
-
-
4
条件付き書式で自動で斜線の罫線を引く
Excel(エクセル)
-
5
excel 空白セルに自動で斜線をひきたいです
Excel(エクセル)
-
6
エクセルで条件付きで罫線の斜線を引きたいです。
その他(Microsoft Office)
-
7
エクセル 結合セル内に空白なら斜線を引くマクロ
Excel(エクセル)
-
8
vlookup にて、返す値が、空白の場合に、任意の文字列を表示するには?
Excel(エクセル)
-
9
Excel(VBA)データ入力に応じて複数範囲のセルの上に1本の斜線を引きたい
Excel(エクセル)
-
10
結合したセルを含む列内で、条件付き書式として塗りつぶしたい
Excel(エクセル)
-
11
罫線の斜線を自動で引くマクロ
Excel(エクセル)
-
12
「B列が日曜の場合」C列に/(斜線)が入るようにならないものでしょうか?
Excel(エクセル)
-
13
Excelでセル参照したとき、書式も一緒に持ってくるには?
Windows Vista・XP
-
14
エクセルでの計算式で求められた値に( )カッコをつけたいのですが…
その他(パソコン・スマホ・電化製品)
-
15
Excel 関数を使ってデータと一緒にその書式もコピーしたいのですが・・・
Excel(エクセル)
-
16
Excel VBA 条件に一致した言葉の下セルに斜線をひきたい
Visual Basic(VBA)
-
17
エクセル関数を教えてください 空白セルの合計数と斜線セルの合計数を出したいのですがどのような計算式な
Excel(エクセル)
-
18
エクセルで複数のコメントのサイズ(形)を一括で変える方法
Excel(エクセル)
-
19
あるセルに特定の文字列を打つと、他のセルに決められた文字が自動入力するように
Excel(エクセル)
-
20
VBA 検索して一致したセルへジャンプさせたい
その他(プログラミング・Web制作)
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで0.0と表示したい
-
他シートのある列を検索して一...
-
エクセル 絶対値の合計
-
Excel条件付で偶数・奇数を判断...
-
Googleスプレッドシートで合計...
-
エクセルの数式で教えてください。
-
excelで小数点0を表示させる方法
-
エクセルの文字列を結合しても...
-
エクセルの日またぎ時間計算の仕方
-
セルの数式を計算させないで文...
-
ローマ字入力で「トゥ」を入力...
-
SUM関数の範囲に#N/Aが...
-
1点の辻の字に変換したいがエク...
-
スマホの小文字gについて
-
word の文字入力 文字が青色に...
-
上のハイフンの打ち方
-
「未使用」と「不使用」ってど...
-
Excelでエラー(#N/Aなど)値を...
-
西暦の2桁表記に使うアポスト...
-
すべてのシートを選択してエク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
他シートのある列を検索して一...
-
Googleスプレッドシートで合計...
-
エクセルで0.0と表示したい
-
【EXCEL】関数で計算された数字...
-
vlookupで返された値が空白だっ...
-
エクセル 絶対値の合計
-
excelで小数点0を表示させる方法
-
エクセルの文字列を結合しても...
-
Excelで合計の金額を違うセルに...
-
エクセル .50以下で切り捨て、...
-
エクセル 背景色のついたセル位...
-
セルの数式を計算させないで文...
-
EXCELで上位10個のデータを平均...
-
Excel VBAにてUserFormのTextBo...
-
エクセルで運賃計算
-
Excelで方眼紙を作り、そこに手...
-
エクセルつくったグラフで10月...
-
エクセルで網掛けをしたセルを...
-
EXCEL VBA 選択範囲をTargetに
-
エクセルへバーコードリーダー...
おすすめ情報