解決したと思い締め切らせていただいたのですが、
再度問題が出てきたので質問させてください。
http://qanda.rakuten.ne.jp/qa8670339.html
ベストアンサーの方法で運用し始めたのですが、コードを入力したシート(シート名:1)にだけ
エラーが出ます。
2つのセルを一度にペーストしようとすると、(例えば、C11とC12をC13とC14にコピーペースト)
実行時エラー'13': 型が一致しません。とのエラーが出ます。
解決策があれば教えて頂きたく思いますので、よろしくお願いします。
No.1
- 回答日時:
If Target.Address = "$G$7" And Target <> "" Then
これを見ても、1つのセルをターゲットにしています。
そのプログラムの前に
If Target.Rows.Count <> 1 Then
Exit Sub
End If
と入れてください。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long, k As Long, cnt As Long, str As String, buf As String
If Target.Rows.Count <> 1 Then
Exit Sub
End If
If Target.Address = "$G$7" And Target <> "" Then
For i = 1 To Len(Target)
str = Mid(Target, i, 1)
If str Like "[0-9]" Then Exit For
buf = buf & str
Next i
cnt = Replace(Target, buf, "") + 1
Range("F32") = buf & Format(cnt, "0000")
For k = 3 To Worksheets.Count '★Sheet見出しの3番目のSheet~最終Sheetまで
If IsNumeric(Worksheets(k).Name) Then
cnt = cnt + 1
With Worksheets(k)
.Range("G7") = buf & Format(cnt, "0000")
cnt = cnt + 1
.Range("F32") = buf & Format(cnt, "0000")
End With
End If
Next k
End If
End Sub
こうですね。
少しずつどういった流れでプログラムが動いているのか見てみると良いと思います。
No.2
- 回答日時:
こんばんは!
前回回答した者です。
>2つのセルを一度にペーストしようとすると、(例えば、C11とC12をC13とC14にコピーペースト)
とありますが、各SheetのC11・C12セルをそのSheetのC13・C14セルにコピーする!というコトでしょうか?
一応そういうコトだとして・・・
前回の「連番」とは意味が違うと思いますので、別のマクロにしてみてはどうでしょうか?
前回はSheet「1」のChangeイベントですので、
Sheet「1」のG7セルデータ変更時にマクロが実行されるコードでした。
標準モジュールに↓のコードをコピー&ペースト → Excel画面に戻りマクロを手作業で実行してみてください
(Alt+F8キー → マクロ → マクロ実行です)
Sub セルコピー()
Dim k As Long
For k = 1 To Worksheets.Count
If IsNumeric(Worksheets(k).Name) Then
With Worksheets(k)
.Range("C11:C12").Copy .Range("C13")
End With
End If
Next k
End Sub
※ 今回もSheet名が数字のみのSheetで動作するようにしています。
※ 各SheetのC11・C12セルをそのSheetのC13・C14セルにコピー&ペーストしています。m(_ _)m
何度もお手を煩わせまして申し訳ありません。
なかなか一度で完璧に!とはいかないようですが、今のところ順調に動いております。
いろいろと奥が深いものですね・・・。
No.3ベストアンサー
- 回答日時:
前回解答のtom04さんから返事がきたようなので書かせてもらいます。
今度の質問の
>コードを入力したシート(シート名:1)にだけエラーが出ます。2つのセルを一度にペーストしようとすると、・・・
このエラーの原因は、複数セルを選んで変更処理を行っていて、
If Target.Address = "$G$7" And Target <> "" Then
のTargetにプロパティが指定されていないからです。
ア.単一セルの場合、VBAがTagetの中身(ValueかText)で判定するのでうまくいきます。
イ.複数セルの場合、Targetという名のRangeオブジェクトに対してTarget <> ""を実行するので「型が一致しません」のエラーが出るわけです。
また、VBAの場合、
If 判定1 And 判定2 Then
の場合、判定1が成立しない時も判定2を調べに行きます。質問の場合、複数セルを操作しているので「Target.Address = "$G$7"」で弾かれますが、ある意味不必要な「Target <> ""」も実行されて、Rangeオブジェクトと「""」の比較をするので「型が一致しません」のエラーが出るわけです。
さらに、質問には、
>コードを入力したシート(シート名:1)にだけエラーが出ます。
とありますが、シート1を含む作業グループを作っていて、シート1以外で複数セルを操作するとエラーが出るはずです。また、その状態でシート1以外のセルG7を操作するとシート1のChangeイベントが実行されてしまいます。その動作が期待することかどうかです。本式に作るときにはこの辺りまで気になります。何かが起きた後ではまずいので。
>解決策があれば教えて頂きたく思いますので、よろしくお願いします。
対応として、
If Target.Address = "$G$7" And Target <> "" Then
↓
If Target.Address = "$G$7" And Target.text <> "" Then
ちゃんとプロパティを書くことです。
または、
If Target.Address = "$G$7" Then
If Target <> "" Then
と意味が異なることをAndで判定しないようにします。この場合はTargetにTextプロパティは必須ではありません。
さらに、作業グループを意識する場合は、
If ActiveSheet.Name = "Sheet1" Then
のような判定を追記します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/26 13:19
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Visual Basic(VBA) エクセルのマクロについて教えてください。 5 2023/07/05 09:30
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Excel(エクセル) 【エクセル】文中に別シートのセルの内容を自動入力したい 6 2022/11/17 11:30
- Visual Basic(VBA) VBA 改行コードの取り方 1 2022/03/22 14:14
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/08 09:08
- Visual Basic(VBA) Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる 3 2022/12/21 09:07
- Excel(エクセル) 複数セルデータを別シートの単一セルにコピーしたい。(詳細をご参照ください) 1 2022/12/14 15:08
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでの作業計算方法について
-
Microsoft1Officeの互換ソフト...
-
【マクロ】その時、その時で変...
-
はがきについて。
-
【マクロ】読取専用のファイル...
-
エクセル初心者です 関数の入れ...
-
【関数】適切な文字数の数字を...
-
LOOKUP関数を使えばいいのでし...
-
【関数】先頭だけにある、半角...
-
Excel ピボットテーブルで日付...
-
Excelのpivotについて質問です
-
時間によってファイル名が変わ...
-
エクセル 白黒印刷で白線を印刷...
-
Aというブックの1というシート...
-
エクセル関数を教えてください
-
WPS OFFICEでの縦書きについて
-
Excelのチェックボックスの使い...
-
エクセルの条件付き書式につい...
-
エクセルのセルに同じ大きさの...
-
エクセルの関数について教えて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報