ここから本文です

Excel VBAにて、自分で書いた部分も含んでおりますが、以下の内容のマクロが動作す...

min********さん

2019/7/111:16:35

Excel VBAにて、自分で書いた部分も含んでおりますが、以下の内容のマクロが動作するように追記、ご教授頂けませんでしょうか。

Private Sub CB_OK_Click()

1.チェックボックスがTrueなら、"原本"シートをコピーし、シート名を入力された名前に変更、変更したシートのC2に入力した名前を入れる

if Checkbox = True than

また"原本"シートのA列のセルに式 "=IF([シート名]!$H$37="",0,1)"をセットする。

※シートコピー前に入力した名前のシートが既に存在しているかチェックし、存在する場合はエラーメッセージを表示し、以降の処理は行わない。

2.チェックボックスがFalseなら、シート作成は行わず、既存のシートをセットする。

Checkbox = false

3.Textbox1.Textbox2.Textbox3の内容を対象シートのH4.Q4.Z4へセットする

Range(H4).Value = TextBox1.Value
Range(Q4).Value = TextBox2.Value
Range(Z4).Value = TextBox3.Value

4.フォームを閉じる

unload me

End Sub

閲覧数:
48
回答数:
2
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

kky********さん

2019/7/113:32:58

1の説明の中に
>シート名を入力された名前に変更
と書いてありますが、入力された名前とは何ですか?
TextBox1、TextBox2、TextBox3 以外にテキストボックスがあって入力しているのですか?

  • 質問者

    min********さん

    2019/7/113:46:09

    仰る通りです。
    元々ユーザーフォームがあり、その中にCheckbox一つ、TEXTBOX3つに氏名1,2,3があり、TEXTBOXに入力した名前になります。

  • その他の返信を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2019/7/1 15:01:45

お手間おかけしましたが、大変助かりました。
提示頂いた内容を参考に残りも考えてみます。

ベストアンサー以外の回答

1〜1件/1件中

プロフィール画像

カテゴリマスター

aka********さん

2019/7/112:36:34

ユーザーフォーム上のチェックボックスなら ACTIVEXコントロールですよね。

if Checkbox = True than ではなく
if Checkbox1 = True then の 間違いでしょう。
コントロールボックスには 番号が必要
Private Sub CB_OK_Click() も 同じく
また thanでではなく then ですね・

Range(H4).Value = TextBox1.Value
対象シートの指定をするなら
Sheet2.Range です。
Rangeの 前に シートを指定する必要が あります。

そして Range("H4").Value ""が 必要です。

"原本"シートをコピーし、シート名を入力された名前に変更、変更したシートのC2に入力した名前を入れる

C2に シート名を入力し その名前をシート名にする。
これは マクロの記録で できると 思います。


もう一度 やってみてください。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる