こんにちは、以下のコードはC6セルにある文字を同じかどうか判断して、C6、G6、H6の条件が合致したらSheet2に転記するコードです。
それで、3点教えて頂きたいのですが
■1点目 条件が合致した場合、このコードでは書式なども転記されるので、値のみ転記したい
■2点目 このコードではこのコードを実行した時に以下であるかを判定し転記すると思います
そうではなくて、常時実行しておいて条件が揃えば実行するに変更
■3点目 C6に何も入ってなければ無視するというコードを追加
以上3点 詳しい方、よろしくお願いします。
**********************
Sub 転記()
Dim wsA As Worksheet
Dim wsB As Worksheet
Dim lastRow As Long
Set wsA = ThisWorkbook.Sheets("Sheet1")
Set wsB = ThisWorkbook.Sheets("Sheet2")
If wsA.Range("C6").Value = "価格" And (wsA.Range("F6").Value >= wsA.Range("G6").Value Or wsA.Range("F6").Value <= wsA.Range("H6").Value) Then
lastRow = wsB.Cells(wsB.Rows.Count, "B").End(xlUp).Row + 1 ' find next available row in column B of SheetB
wsA.Range("B6:M6").Copy Destination:=wsB.Range("B" & lastRow) ' copy values from SheetA B6:M6 to SheetB last available row
wsA.Range("B6:I6,L6:M6").ClearContents ' clear values from B6:I6 and L6:M6 on SheetA
ElseIf wsA.Range("C6").Value = "状態" And (wsA.Range("F6").Value <= wsA.Range("G6").Value Or wsA.Range("F6").Value >= wsA.Range("H6").Value) Then
lastRow = wsB.Cells(wsB.Rows.Count, "B").End(xlUp).Row + 1 ' find next available row in column B of SheetB
wsA.Range("B6:M6").Copy Destination:=wsB.Range("B" & lastRow) ' copy values from SheetA B6:M6 to SheetB last available row
wsA.Range("B6:I6,L6:M6").ClearContents ' clear values from B6:I6 and L6:M6 on SheetA
End If
End Sub
No.1ベストアンサー
- 回答日時:
こんにちは
■1点目
ご提示のコードで
セル範囲A.Copy Destination:=セル範囲B
となっているところを
セル範囲B.Value = セル範囲A.Value
のような形式にすれば、値のみコピーされます。
ただし、上記の記述の場合は、セル範囲Aとセル範囲Bのサイズ(行列の大きさ)を一致するようにしておく必要があります。
サイズを揃えるのには、resizeプロパティ等を利用なされば宜しいと思われます。
https://learn.microsoft.com/ja-jp/office/vba/api …
あるいは、PasteSpecial メソッドで「値のみ」を指定しても可能です。
https://learn.microsoft.com/ja-jp/office/vba/api …
■2点目
意味がちょっと良くわかりませんけれど、想像するところ「マクロをいちいち実行しなくても、関数のように自動で反映して欲しい」というご希望かと解釈しました。
不可能ではありませんけれど、多分、質問者様の意図とは異なる結果になりそうな気がします。
方法としては、シートのチェンジイベントを利用して転記するような方法になりますが、関数とは違ってご提示のマクロは「追記」してゆく処理になっているので、利用者の意図と異なって追記されかねません。
例えば、F6:H6が空白の状態(必ずしも空白でなくても条件が成立している状態)で、C6セルに「価格」なり「状態」が入力されると転記されます。
すると、入力したはずのC6セルがクリアされますので、おかしいと思って再入力するとまた転記されます。
といったことが起きかねないということです。
要は、人間が「まだ入力の途中」と思っていても、現状ではプログラム側にはそれを判断するすべが無いという意味です。
「必ずC6セルへの入力を最後に行う」とか、あるいは「入力が終了したことがわかる条件を明示することができる」のであれば「その時だけ処理を行う」ようにすることで、ご希望のようにできるかも知れません。
■3点目
現状のままで無視されると思いますが、コピーされてしまうのでしょうか?
回答頂き、ありがとうございます
3点目に関しては、準備的にお聞きしたので、あなたがおっしゃる通りでした。
1点目、2点目、理解出来ました、1点目は書き換えるだけなので良いとして、2点目を少し考えながらやってみたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル 値をコピペした時に、条件付き書式で塗られた背景色もペーストさせる 2 2023/04/05 17:21
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Excel(エクセル) vba userformで漢字を全角カタカナに 2 2022/07/24 15:38
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) ローマ字、ハイフン付きの並び替え ローマ字抽出方法 Excelマクロ 4 2022/04/01 14:10
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Exel VBA 別ブックから該当デ...
-
chatgptでつくってもらったコー...
-
1、Rstudioで回帰直線を求める...
-
pythonにてseleniumを使うも、...
-
パイソンプログラム
-
ExcelのVBAコードについて教え...
-
コードを記入すると情報を出す方法
-
◾️Excel VBA 統合について Cons...
-
Microsoft Visual Studio Commu...
-
TVリモコン設定(SMILE KIDS)
-
JavaScriptの定数名が取り消し...
-
ExcelのVBAコードについて教え...
-
課題なのですがどなたかコード...
-
VB2005 RowFilterのパラメータ...
-
sinカーブの表示のさせ方
-
AccessでReplace関数を使うときに…
-
フィルターかけた後、重複を除...
-
Gitのクローンについて
-
VBA:テキストファイルの抽出に...
-
pythonで同じコード内で複数の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
pythonにてseleniumを使うも、...
-
ExcelのVBAコードについて教え...
-
access2003 クエリSQL文に...
-
1日に1人がこなせるプログラム...
-
ExcelのVBAコードについて教え...
-
Exel VBA 別ブックから該当デ...
-
chatgptでつくってもらったコー...
-
PreviewKeyDownイベントが2回...
-
JavaScriptの定数名が取り消し...
-
1、Rstudioで回帰直線を求める...
-
JANコードとPOSコードは同じ?
-
JavaScript|特定URLだった時、...
-
ACCESSユニオンクエリでORDER B...
-
特定行の背景色を変えたいのですが
-
変数名「cur」について
-
エクセルに見えない文字(JISX0...
-
COBOLの文法
-
Gitのクローンについて
-
Outlook VBAについて
おすすめ情報