質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

if

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Q&A

3回答

653閲覧

excel vba if文エラー 有効範囲がインデックスにない

oncle

総合スコア0

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

if

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

1クリップ

投稿2021/07/13 05:44

###ワークシート出欠1のB列が”出席”の場合は1、”欠席”の場合は0とワークシート名簿に自動入力するマクロを作成したいのですが、このようにコードを書き実行するとエラーが起きます。どこを改善すれば良いでしょうか?
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Set sh1 = Worksheets("名簿")
Set sh2 = Worksheets(" 出欠1")

If sh2.Cells("B2:B71") = "出席 " Then sh1.Cells("B3:B72") = "1" Else sh1.Cells("B3:B72") = "2" End If

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

VBA

1Sub sample1() 2 Dim sh1 As Worksheet 3 Dim sh2 As Worksheet 4 Set sh1 = Worksheets("名簿") 5 Set sh2 = Worksheets("出欠1") 6 Dim i 7 With sh2.Range("B2:B71") 8 For i = 1 To .Rows.Count 9 sh1.Range("B3:B72").Cells(i).Value = IIf(.Cells(i) = "出席", "1", "2") 10 Next 11 End With 12End Sub 13 14Sub sample2() 15 Dim sh1 As Worksheet 16 Set sh1 = Worksheets("名簿") 17 sh1.Range("B3:B72").FormulaR1C1 = "=IF(出欠1!R[-1]C=""出席"",1,2)" 18End Sub

投稿2021/07/13 08:08

jinoji

総合スコア4585

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

こちらの間違いではないですか。
"B2:B71"と指定するならばCellsでは無く、Range("B2:B71")と記述します。
"B2:B71"でループする場合には、neconekocat様の様に記述します。

VBA

1If sh2.Cells(2,71) = "出席 " Then 2 sh1.Cells(3,72) = "1" 3Else 4 sh1.Cells(3,72) = "2" 5End If

投稿2021/07/13 06:36

編集2021/07/13 06:38
tosi

総合スコア553

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Set sh2 = Worksheets(" 出欠1")
空白が混じってるのが怪しい

追記
行毎に処理する必要があるので、ループを使います。

VBA

1Dim i As Long 2 3For i = 2 To 71 4 If sh2.Cells(i, 2).Value = "出席" Then 5 sh1.Cells(i + 1, 2).Value = "1" 6 Else 7 sh1.Cells(i + 1, 2).Value = "0" 8 End If 9Next

投稿2021/07/13 05:55

編集2021/07/13 06:40
neconekocat

総合スコア443

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

oncle

2021/07/13 06:06

ありがとうございます。空白が入っていました!、、ですが(プロシージャの呼び出し、または引数が無効です。)とまたエラーが起きました。。。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問