[[20220703153643]] 『フォームを使用して複数シートへ一括入力』(超初心者) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『フォームを使用して複数シートへ一括入力』(超初心者)

実行時エラー424がでます。
自分なりに調べましたが、お手上げ状態です。
教示の程、よろしくお願いいたします。

Private Sub Label3_Click()

End Sub

Private Sub 登録ボタン_Click()
'入力の処理

 Sheets(Array("M3c カバー2種", "M3C BUP(D)", "M3c BUP(S)", "M6c BUP(D)", "M6c BUP(S)", "M6cシュート", "M3cシュート", "M6cカバー4種", "M6プレートオサエ", "M3プレートオサエ", "M6メイバン", "M3メイバン", "M6カバーストッパ", "M6カバー(メクラブタ)", "M6ヒョウジユニット", "カバーアクリル", "M6下部ダクト", "M3下部ダクト", "M6ヒンジ", "M3ヒンジ", "SWリミット", "シグナルタワー", "M6シートゴムAssy", "M3シートゴムAssy", "M3 M6カバーAssy ", "M6上部ダクト", "M3上部ダクト", "NGBOX(M6)", "NGBOX(M3)", "?Vcシームレス", "シームレス", "M6(D) BUP", "M6(S) BUP", "M3(D) BUP", "M3(S)BUP", "M6トップカバー", "M3トップカバー", "M6フロントカバー", "M3フロントカバー")).Select.Cells(26, 1).Value = 標準工数日付入力テキストボックス.Text
 Sheets(Array("M3c カバー2種", "M3C BUP(D)", "M3c BUP(S)", "M6c BUP(D)", "M6c BUP(S)", "M6cシュート", "M3cシュート", "M6cカバー4種", "M6プレートオサエ", "M3プレートオサエ", "M6メイバン", "M3メイバン", "M6カバーストッパ", "M6カバー(メクラブタ)", "M6ヒョウジユニット", "カバーアクリル", "M6下部ダクト", "M3下部ダクト", "M6ヒンジ", "M3ヒンジ", "SWリミット", "シグナルタワー", "M6シートゴムAssy", "M3シートゴムAssy", "M3 M6カバーAssy ", "M6上部ダクト", "M3上部ダクト", "NGBOX(M6)", "NGBOX(M3)", "?Vcシームレス", "シームレス", "M6(D) BUP", "M6(S) BUP", "M3(D) BUP", "M3(S)BUP", "M6トップカバー", "M3トップカバー", "M6フロントカバー", "M3フロントカバー")).Select.Cells(27, 1).Value = 目標工数日付入力テキストボックス.Text
End Sub

Private Sub TextBox2_Change()

End Sub

< 使用 Excel:Excel2013、使用 OS:Windows10 >


.Selectがいらない
(ほねチキン) 2022/07/03(日) 16:13

Cells(26, 1)にテキストボックスの値を入れるようにしているのに
余分なSheets(Array("M3c カバー2種", ・・・とするんですかね。
Arrayで指定したものは何処のセルに入れようとしているんでしょうか。
左辺と右辺を理解していますか。

(???) 2022/07/03(日) 18:32


(ほねチキン)様
全く理解しておりません。
ご指導お願いいたします。

超初心者
(超初心者) 2022/07/03(日) 19:11


(ほねチキン)様

エラー回避の教示願います。

(超初心者) 2022/07/03(日) 19:42


構文としては、こんな感じ
 Sub test()
    Sheets(Array("Sheet1", "Sheet2")).Select
    Range("Z1:AA1").Select
    Selection.Value = Array(1, 2)
    Sheets("Sheet3").Select
 End Sub

(マナ) 2022/07/03(日) 20:06


転記先の行列が逆でした。

Sub test()

    Sheets(Array("Sheet1", "Sheet2")).Select
    Range("A26:A27").Select
    Selection.Value = WorksheetFunction.Transpose(Array(1, 2))
    Sheets("Sheet3").Select
End Sub

(マナ) 2022/07/03(日) 20:14


 セルへの一括入力は、数値を入力されたいのですか?
 それとも、日付ですか?

 よくわかりませんが、Array で書いても良いのですが
 複数のシートを指定するのは…ちょっと手間ですかね?

 既に、指摘がありますが…シートインデックス番号で
 された方が楽かなと思いますよ。

 日付を一括入力ならこんなイメージですかね?
 ( シート1〜3へ日付けを入力する )

 Private Sub CommandButton1_Click()
    Dim q As Long
    If Not TextBox1.Text Like "####/##/##" And Not IsDate(TextBox1.Text) Then
        MsgBox "TextBox1を、日付形式で入力してください"
        Exit Sub
    End If
    If Not TextBox2.Text Like "####/##/##" And Not IsDate(TextBox2.Text) Then
        MsgBox "TextBox2を、日付形式で入力してください"
        Exit Sub
    End If
    For q = 1 To 3
        Sheets(q).Cells(26, 1).Value = Format(TextBox1.Text, "yyyy/mm/dd")
        Sheets(q).Cells(27, 1).Value = Format(TextBox2.Text, "yyyy/mm/dd")
    Next
 End Sub

 ※各オブジェクト名は、任意なものに変更してください。

 ・CommandButton1 ( 登録ボタン )
 ・TextBox1 ( 標準工数日付入力テキストボックス )
 ・TextBox2 ( 目標工数日付入力テキストボックス )

 ※日付形式ならですが  yyyy/mm/dd つまり、2022/7/3 等と入力する

 参考:インデックス番号でシートを参照する
https://docs.microsoft.com/ja-jp/office/vba/excel/concepts/workbooks-and-worksheets/refer-to-sheets-by-index-number

(あみな) 2022/07/03(日) 21:51


(マナ) 様

教示ありがとうございます。

(超初心者) 2022/07/03(日) 22:22


作業グループにして一括入力したいってことだと思いますが、そうではなくループ処理で各シートに書き込むのは駄目ですか?
    Sub 研究用()
        Dim 配列 As Variant
        Dim sh As Worksheet

        配列 = Array("M3c カバー2種", "M3C BUP(D)", "M3c BUP(S)", "M6c BUP(D)", "M6c BUP(S)", _
                             "M6cシュート", "M3cシュート", "M6cカバー4種", "M6プレートオサエ", "M3プレートオサエ", "M6メイバン", _
                             "M3メイバン", "M6カバーストッパ", "M6カバー(メクラブタ)", "M6ヒョウジユニット", "カバーアクリル", _
                             "M6下部ダクト", "M3下部ダクト", "M6ヒンジ", "M3ヒンジ", "SWリミット", "シグナルタワー", _
                             "M6シートゴムAssy", "M3シートゴムAssy", "M3 M6カバーAssy ", "M6上部ダクト", "M3上部ダクト", _
                             "NGBOX(M6)", "NGBOX(M3)", "?Vcシームレス", "シームレス", "M6(D) BUP", "M6(S) BUP", _
                             "M3(D) BUP", "M3(S)BUP", "M6トップカバー", "M3トップカバー", "M6フロントカバー", "M3フロントカバー")

        Stop 'ブレークポイントの代わり

        For Each sh In Worksheets(配列)
            sh.Cells(26, 1).Value = 標準工数日付入力テキストボックス.Text
            sh.Cells(27, 1).Value = 目標工数日付入力テキストボックス.Text
        Next sh
    End Sub

(もこな2) 2022/07/04(月) 07:19


(あみな)様

教示ありがとうございました。
(超初心者) 2022/07/04(月) 20:46


(もこな2)様

教示ありがとうございます。
Private Sub 登録ボタン_Click()を使用したいのですが。
(超初心者) 2022/07/04(月) 20:49


貴方が提示した登録ボタン_Clickの内容を削除して
(もこな2)2022/07/04(月) 07:19 Dim 配列 As Variant 〜 Next sh までをさしかえればいいのでは。
(あほ) 2022/07/04(月) 21:13

皆様。

自分なりに調べましたが、お手上げ状態です。

 Sub 研究用()
        Dim 配列 As Variant
        Dim sh As Worksheet
        配列 = Array("M3c カバー2種", "M3C BUP(D)", "M3c BUP(S)", "M6c BUP(D)", "M6c BUP(S)", _
                             "M6cシュート", "M3cシュート", "M6cカバー4種", "M6プレートオサエ", "M3プレートオサエ", "M6メイバン", _
                             "M3メイバン", "M6カバーストッパ", "M6カバー(メクラブタ)", "M6ヒョウジユニット", "カバーアクリル", _
                             "M6下部ダクト", "M3下部ダクト", "M6ヒンジ", "M3ヒンジ", "SWリミット", "シグナルタワー", _
                             "M6シートゴムAssy", "M3シートゴムAssy", "M3 M6カバーAssy ", "M6上部ダクト", "M3上部ダクト", _
                             "NGBOX(M6)", "NGBOX(M3)", "?Vcシームレス", "シームレス", "M6(D) BUP", "M6(S) BUP", _
                             "M3(D) BUP", "M3(S)BUP", "M6トップカバー", "M3トップカバー", "M6フロントカバー", "M3フロントカバー")
        Stop 'ブレークポイントの代わり
        For Each sh In Worksheets(配列)
            sh.Cells(26, 1).Value = 標準工数日付入力テキストボックス.Text
            sh.Cells(27, 1).Value = 目標工数日付入力テキストボックス.Text
        Next sh
    End Sub

上記プログラムに対してPrivate Sub 登録ボタン_Click()で処理したいのですが。教示お願いいたします。
(超初心者) 2022/07/05(火) 21:10


>自分なりに調べましたが、お手上げ状態です。
言い訳ですか。
完成版が欲しいということですか。
(あほ) 2022/07/04(月) 21:13さんがさらに回答していますよ。
(わからずや) 2022/07/05(火) 21:44

 本当にこんなシート名があるんですか(先頭が疑問符になっていますけど)
     ↓
     "?Vcシームレス"

 まず、それを明確にしましょうよ。

(半平太) 2022/07/05(火) 23:09


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.