![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
ExcelのVBAについて質問です。
VBAを用いて在庫管理表を作成したいと考えております。
やりたいこととして、
1.ある範囲(B列)セルの背景が赤い色がついているときだけ、上書き保存時にメール送信画面(Outlook)が現れる。
(赤背景については、関数を用いて色を付ける予定です。)
2.メール送信画面の本文に赤色のセルの隣のセル(A列:名前)が反映される。
例
A B
品名 在庫数
1 リンゴ 100
2 みかん 50(赤背景)
3 ブドウ 200
4 バナナ 40(赤背景)
送信メール
アドレス:○○@××
件名:在庫発注依頼
本文:
○○さん
(みかん)、(バナナ)の在庫がなくなりそうですので、発注をお願いします。
△△(自分)
説明が分かりにくいかもしれませんが、教えていただけると幸いです。
よろしくお願いいたします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こんにちは
横からですが・・・
>1.の色がついているときだけというIF文の作製の仕方が分からない。
どうやって色を付けているのかにもよりますが、背景色を取りたいのなら、例えば、
Sub Sample()
Set r = Range("B1:B10")
For Each c In r
If c.DisplayFormat.Interior.Color = 255 Then
Debug.Print c.Address
End If
Next c
End Sub
とすれば、背景色赤のセルだけピックアップします。
(赤がどの赤かわからないので、とりあえず、RGB(255, 0, 0)を拾っています)
>2.の色のついた隣のセルをメール文に起こすやり方
「隣り」ってのは左隣のことと解釈。
上記でセル位置がわかるので、それを利用してもよいですし、当該セル(Rangeオブジェクト)からそのまま、 c.Offset(,-1).Value でも値を取得できます。
No.1
- 回答日時:
できますけど、ここは、
「代わりに作ってください」
と作業依頼する場所ではありませんので、有料サイトで依頼することを勧めます。
「自分で作りたいけど、作り方が分からない」
という事でしたら、
自分で作成するにあたり、
・何が分からないのか
・どの点が分からないのか
…を質問文や補足に書くと良いでしょう。
簡単な例を示して教えてくださる方がいらっしゃると思います。
銀鱗さん
誤解を招き申し訳ございません。
ご指摘ありがとうございます。
下記のように、メールを立ち上げることが出来るのですが、
1.の色がついているときだけというIF文の作製の仕方が分からない。
2.の色のついた隣のセルをメール文に起こすやり方(r=の部分)が分からないということで、困っております。
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
Dim msg As String
Dim ws As Worksheet
Dim r As Long
Set ws = Sheets("在庫管理表")
r = ??????
msg = "○○さん"
msg = msg & vbCrLf & ms.Cells(r, "A").Value &"の在庫がなくなりそうですので、発注をお願いします。″ & vbCrLf & "△△"
Const olMailItem = 0
Dim ol As Object
Dim mail As Object
Set ol = CreateObject("Outlook.Application")
Set mail = ol.CreateItem(olMailItem)
mail.Display
mail.To = "〇〇@××"
mail.Subject = "在庫発注依頼"
mail.Body = msg
End Sub
もしよろしければ教えていただけ無いでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 昨日、質問した件『VBA にて、条件付き書式で背景色を設定しているセルの範囲で、背景色付きのセルをカ 4 2022/04/07 14:39
- Visual Basic(VBA) VBA にて、条件付き書式で背景色を設定しているセルの範囲で、背景色付きのセルをカウントできる、VB 2 2022/04/06 21:33
- その他(Microsoft Office) エクセル 表の移動 2 2023/04/05 20:29
- Excel(エクセル) こんなことできますか?例えば、sheetに貼り付けた図形のタイトルを、セルA1の文字で表示する。 5 2022/04/22 15:25
- その他(Microsoft Office) スプレッドシートにて、条件付き書式で複数の単語に合致するセルを着色したいです。 2 2023/04/06 13:25
- Excel(エクセル) エクセルのマクロを教えてください シート内の背景色が赤のセルだけを残して 他のセルは削除したいです。 3 2023/07/12 12:26
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- Visual Basic(VBA) Outlook VBAについて 1 2023/07/10 12:41
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- 会計ソフト・業務用ソフト エクセル 背景色のついたセル位置を参考にして固定の数値を取得する 4 2022/07/11 08:44
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで数式内の文字色を一部だ...
-
【エクセル】IF関数 Aまたは...
-
対象セル内(複数)が埋まった...
-
エクセルで指定したセルのどれ...
-
Excelでのコメント表示位置
-
エクセル 足して割る
-
貼り付けで複数セルに貼り付けたい
-
Excelで教えてください。 バー...
-
枠に収まらない文字を非表示に...
-
セルをクリック⇒そのセルに入力...
-
エクセルの一つのセルに複数の...
-
【Excel】 セルの色での判断は...
-
excelのCOUNTIF関数で、『範囲=...
-
エクセル “13ヶ月”を“1年1ヶ月...
-
(Excel)数字記入セルの数値の後...
-
Excel2003 の『コメント』の編...
-
セルの高さ(行高)を求めるには?
-
エクセルでオブジェクトを常に...
-
EXCELのセルの中の半角カンマの...
-
VBAで特定の文字が入力されたセ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで指定したセルのどれ...
-
【エクセル】IF関数 Aまたは...
-
セルをクリック⇒そのセルに入力...
-
Excelで数式内の文字色を一部だ...
-
エクセル 足して割る
-
対象セル内(複数)が埋まった...
-
貼り付けで複数セルに貼り付けたい
-
Excelでのコメント表示位置
-
エクセルのセルの枠を超えて文...
-
エクセル オートフィルタで絞...
-
エクセルの一つのセルに複数の...
-
EXCEL VBA セルに既に入...
-
【Excel】 セルの色での判断は...
-
(Excel)数字記入セルの数値の後...
-
エクセル “13ヶ月”を“1年1ヶ月...
-
excelのCOUNTIF関数で、『範囲=...
-
Excel2003 の『コメント』の編...
-
枠に収まらない文字を非表示に...
-
Excelで住所を2つ(町名迄と番...
-
複数のセルのいずれかに数字が...
おすすめ情報