【VBA】チェックしたデータを別シート転記【Copyをループして転記する】

Поделиться
HTML-код
  • Опубликовано: 14 дек 2024

Комментарии • 5

  • @じゅん-m9c
    @じゅん-m9c 8 месяцев назад +1

    こんばんは、質問失礼致します。
    どちらの解説の方でも全く同じ様に入力して挑戦しているのですが、「cell().resize()」のところでエラーとなってしまいます。最初は修正候補=が出たため、cell()の後の.を=に変えたのですが、次はresizeのsubまたはfunctionが定義されていません。となります。スペルミスかなと思いましたが確認しても間違っておらず全く分かりません。
    大変恐縮ですが教えていただけると幸いです。よろしくお願いします。

    • @IT-gx8sf
      @IT-gx8sf  8 месяцев назад

      コメントありがとうございます!
      「.Resize」の部分の入力を確認するとうまくいくかもしれません。
      「Resize」は省略して入力するので少し特殊です。
      行や列を拡張しないのであれば入力を省略することができます。
      例えば、「.Resize(3, 0)」であれば「.Resize(3)」と同じ、
      「.Resize(0, 3)」であれば「.Resize( , 3)」と同じとなります。
      .Resizeのカッコ内はカンマ「,」になります。
      また、入力されましたVBAコードを記載いたただきますと、もしかすると原因を特定できるかもしれません。
      参考になればと思います(^^)

  • @もじじ-n7b
    @もじじ-n7b 3 месяца назад

    こんにちは質問失礼致します
    同じように入力して実行をするとWorksheetクラスのCheckBoxプロパティを取得できませんとエラーが出て、チェック&iの列が黄色になってしまいます。
    大変恐縮ですが教えていただけると幸いです。

  • @はる川内
    @はる川内 Год назад +1

    こんにちは、質問を失礼致します。
    解説の一番最初の方法で挑戦しているのですが、全く同じ様に入力しても
    「For i 」のところで"変数が定義されていません"とエラーが出てしまいます。
    またこちらの解説では、1列のチェックボックスで説明されていますが、コードを応用してチェックボックスを2列使用することも可能てしようか。
    大変恐縮ですが、教えていただけると幸いです。

    • @IT-gx8sf
      @IT-gx8sf  Год назад

      コメントありがとうございます!
      ■エラーが出てしまう件
      本動画では、「変数の宣言を強制する」のチェックを外しておりますので、一部変数を宣言していない変数がありますので、そのまま使ってしまうとエラーとなってしまう場合があります。
      対策としては、2つあります。
      ①すべての変数を宣言する(例:「Dim i」)
      ②「変数の宣言を強制する」のチェックをはずす
      ①の方は、「Dim i」というように、すべての変数を宣言すれば、エラーが出なくなるかと思います。
      ②の方は、「VBE画面」の「ツール」→「オプション」→「編集」タブ→「変数の宣言を強制する」のチェックをはずすといいです。
      一般的には、①で対応されている方が多い印象です。
      ■チェックボックスを2列にする
      コメントを2列にすることも可能です。
      例えば、2つのコメントにチェックが入っている場合に別シートに転記するVBAコードは、次のようになります。セルとリンクしたチェックボックスの場合で記載しています。
      Sub TEST5()

      'Sheet2をクリア
      Sheets("Sheet2").Range("A2:C1000").ClearContents

      j = 1
      For i = 2 To Sheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row
      '両方にチェックがついている場合
      If Sheets("Sheet1").Cells(i, "A") = True And Sheets("Sheet1").Cells(i, "B") = True Then
      j = j + 1
      '最終行+1行目にコピー
      With Sheets("Sheet2")
      Sheets("Sheet1").Cells(i, "C").Resize(, 3).Copy .Cells(j, "A")
      End With
      End If
      Next

      End Sub
      シート「Sheet1」のA列とB列に、あらかじめセルとリンクしたチェックボックスを、作成しておきます。
      A列とB列のチェックボックスに、チェックが入っている行を、別シートに転記することができます。
      ポイントは、If文の条件式に、A列=TrueとB列=TrueをAnd条件にしている点になります。
      参考になればと思います(^^)