【初月無料キャンペーン中】gooドクター

ユーザーフォームを使い各シートに入力するよう作成しているのですが基本的な事があまり知識が
追い付かないため、都度どん詰まりになってしまい投稿させていただきました><

【現状】
ユーザーフォームを作成し該当シートに転記するところまでは出来ているのですが、他のシートへの書き出しがうまくいかず泥沼です><。
◆添付資料:
・現在のコード(初めの方)
・転記したいシート【シート名:オプションdeta1】
→現在他のシートから関数を入れて抽出している資料です。
・ユーザーフォーム画像

【行いたい事】
ユーザーフォーム【添付画像①】の赤枠①or②のチェックした項目を 左詰め で【添付画像②】の赤枠B:Uに自動で転記される様設定していきたいと考えています。
①は左上→下→右上→下の順に転記したい
②は左から右の順で転記したい
③①②の項目以外にも【オプションdeta1】に転記したい項目が発生した時の対処法も教えて
頂けると幸せです。

補足事項がありましたら大変お手数なのですが、ご連絡いただきたいです!

「マクロについて教えて頂けませんか?初めた」の質問画像

質問者からの補足コメント

  • 補足画像

    「マクロについて教えて頂けませんか?初めた」の補足画像1
      補足日時:2021/07/26 16:49
  • 補足

    「マクロについて教えて頂けませんか?初めた」の補足画像2
      補足日時:2021/07/26 16:49
  • Option Explicit

    Private Sub btnClese_Click()
    Unload Me
    End Sub

    Private Sub btnInput_Click()
    Dim Lrow
    Lrow = Range("A" & Rows.Count).End(xlUp).Row '最終行取得
    If Lrow = 1 Then '初期設定
    Range("A2").Value = 1
    Else
    Range("A" & Lrow + 1).Value = WorksheetFunction.Max(Range("A2"), Range("A" & Lrow)) + 1 '入力処理
    End If
    Range("T" & Lrow + 1).Value = userform1.txtUrl.Text
    ↓シートコード記載有

      補足日時:2021/07/26 19:11
  • 【補足】
    ①ユーザーフォーム自体のコマンドボタン【btnInput】で各シートへ記入を行おうとしています。(既に当該シートのコードは入力済みです)
    他シート【オプションdeta1】に転記する様で泥沼です。
    【オプションdeta1】のA列は現在関数で既に転記されていますが、今回のユーザーフォームの入力時にA列が入る様になっています。

      補足日時:2021/07/27 10:06
gooドクター

A 回答 (3件)

こんばんは、


なさりたい事がイマイチわからず、不明な点もいくつかありますね。
大事なのはトリガーです。いつ書き込みを実行するのでしょう?
また、書き込み位置をどのような条件で決めるのでしょう?
更に①と②に同じフリーサイズと言うチェックボックスがありますが
使い分けはどのような時にするのでしょう?
②のサイズ表記はオプションボタンの方か良いのでは無いかと、、
書き込みと共に順不同で選択していくものなのでしょうか?

勝手な解釈で
>【添付画像①】の赤枠①or②のチェックした項目を 左詰め で
>①は左上→下→右上→下の順に転記したい

トリガーはチェックボックスにチェックを入れた(チェンジした)時

どうもチェックボックスのCaptionが入力の値のようなので

オブジェクト名がCheckBox1である時の例
複数のチェックボックスから実行するでしょうから、実行部分はサブで

Private Sub CheckBox1_Click()
If CheckBox1 = True Then
Call writing_cell(CheckBox1.Caption)
End If
End Sub

Sub writing_cell(strCB As String)
Dim r As Range
Dim Rng As Range
Dim CL As Range
Set Rng = Range("B2", "U" & Cells(Rows.Count, 1).End(xlUp).Row)
For Each r In Rng.Columns '列ループ
For Each CL In r.Rows ' 行ループ
If CL = "" Then
CL = strCB
Exit Sub
End If
Next
Next
End Sub

B列U列の範囲不明の為A列最終行を目安にしています。
入力順番は、>①は左上→下→右上→下の順に転記したい
下 ー> 範囲が一番下まで来たら右上に

>②は左から右の順で転記したい
上記ロジックのRowsとColumnsを入れ替えれば良いと思います。

なさりたい事は、おそらくロジックを分ける事が出来ると思いますので
もう少し単純なユーザーフォームから始めた方が良いと思いますが
ご質問とは関係ない事ですね。。参考になれば幸いです。
    • good
    • 0
この回答へのお礼

Qchan1962さん>>
ご連絡ありがとうございます。やってみます!

お礼日時:2021/07/27 10:06

シートの指定方法が分からないだけね。


https://excel-ubara.com/excelvba4/EXCEL292.html

方法はいろいろあるよ。
    • good
    • 0
この回答へのお礼

ありがとうございます!

お礼日時:2021/07/27 10:06

何が問題なのか?


 1、やり方がわからない
 2、想定通りにうごかない
 3、エラーが出る

ソースコードは、画像じゃない方がいいね。
見えないから。
    • good
    • 0
この回答へのお礼

ご連絡ありがとうございます。

1,コードの書き方がわからないです><

お礼日時:2021/07/26 19:05

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

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

gooドクター

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング