回答編集履歴

1

追記

2023/04/28 17:11

投稿

logres_Fan
logres_Fan

スコア176

test CHANGED
@@ -1 +1,46 @@
1
1
  既製品を導入するか、外注して下さい。
2
+ 追記
3
+ メールが立ち上がらないのは、最終行が常に1、データがないので終了となっていたからでした。間に合わせですが、B列に変更すると改善します。
4
+ ```Excel VBA
5
+ cmax = ws1.Cells(Rows.Count, 1).End(xlUp).Row 'A列の最終行を取得
6
+ If cmax = 1 Then Exit Sub 'データがないので終了
7
+ cmax = ws1.Cells(Rows.Count, 2).End(xlUp).Row 'B列の最終行を取得
8
+ If cmax = 1 Then Exit Sub 'データがあれば終了しない
9
+ ```
10
+  メールは立ち上がるが、値が期待通りに反映されない。
11
+ - Findメソッドの引数に指定したかったのは、メーカーじゃなくて見積依頼先。解決済み。
12
+ - 本文空欄問題は、mymail.HTMLBodyを設定。mymail.HTMLBody = strstyle。解決済み。
13
+ - 打ち間違い問題は、{納期}を{見積納期}に。解決済み。
14
+ - Findメソッドのずれは、アルファベットの半角全角違いでも起きるので**要確認*。検索に使うセル文字が半角ならば検索対象も半角に揃えておく事。全角a-zA-Zを試す場合、半角a-zA-Zに自動変換される場合があるので工夫する事。
15
+ - 打ち間違い問題は、波型の括弧{}の半角全角違いでも起きるので**要確認**。セル文字列が半角中括弧ならばコード表記も半角中括弧に揃える事。
16
+ ---
17
+ 複合選択メール立ち上げ
18
+
19
+ ```Excel VBA
20
+ For Each rng In Selection.Rows
21
+  If rng.Row = 1 Then
22
+  GoTo Continue
23
+  End If
24
+
25
+  i = rng.Row
26
+  maker = ws1.Cells(i,6).Value
27
+  …
28
+  request = ws1.Cells(i,11).Value
29
+  …
30
+  〜
31
+  …
32
+   End If
33
+  Continue:
34
+ Next
35
+ ```
36
+ その他
37
+ ```ExcelVBA
38
+ If cmax = 1 Then
39
+  Exit Sub
40
+ End If
41
+
42
+ If Selection.Rows.Count > cmax Then
43
+  Exit Sub
44
+ End If
45
+ ```
46
+ 打ち間違いがあるかもしれないので、参考程度に対応して下さい。