アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excel2010を使用しています。
vlookupで返された値が空白の場合に斜線を引きたいのですが,これにはマクロが必要だとわかりました。
マクロは全く組んだことがないので,開発タブを表示した後,どうすればいいのか全くわかりません。
丁寧に説明して頂けると助かります。

A 回答 (3件)

回答しようとしたら新年があけましたね。


明けましておめでとうございます。
ところで
マクロを実行させるタイミングをイベントと呼びます。
マクロのイベントの中に、関数の結果が空白だった場合に
特定のマクロを実行させるという機能はありません。

それに近いもので言えば、セルの値が変更された場合
に実行させるという Changeイベントがあります。
つまり、Vlookupの検索値のセルが変更されて
Vlookup関数を入れているセルの値が空白だった場合に
斜線の入れるというマクロを組むことになります。
逆に空白でなかったら、斜線を外すと処理も必要になります。
Vlookup関数がどこに入っていて、どのような関数なのかもわかなければ
手出しができませんし、初心者が理解するにちょっと敷居が高いかもしれません。

代替案ですが、Vlookup関数を
IF文と組み合わせにして 空白だったら -- を表示させるとかではダメなのでしょうか。
    • good
    • 2
この回答へのお礼

斜線を入れるマクロと斜線を消すマクロの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イベントを使うと良さそうですね!

お礼日時:2015/01/08 22:05

基本手順:


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関数」は、ホントに空白("")を計算しているのですか?
非常にしばしば、たとえば「実はゼロを返してるけど見た目上ゼロを表示してないので空白に見えてるだけだった」とか、空白じゃなく違うものを計算してるのを説明できてなくて教わったマクロが動かないご相談とか、よく見かけます。
    • good
    • 0

以下で自作関数のネタを作る


1)リボンの左から2番目、「マクロ」の右の▽をクリック
2)「マクロの記録」をクリック
3)どこかのセルを選択し、斜線引く処理を行う
4)「記録終了」をクリック

> vlookupで返された値が空白の場合に斜線を引きたい
iF文でvlookupの戻り値を判断し、空白なら上記の関数を呼ぶ
ただし、「3)で選択したセル」は常に変らないので
自作関数の引数に自セルを渡す→受取側(=自作関数)は
引数のセルに斜線引くに変更が必要
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています