VBAでコピペした値がコピペ先の書式で表示できない
こんにちは、お世話になっています。
表題のとおり、VBA内でコピペした値が、コピペ先の書式で表示ができなくて困っています。
状況としては、「指定したシート1上の範囲内のセルの文字列をコピーし、シート2で指定したセル内にペーストする」ということを行いたいのですが、貼り付けた値はコピペ元の書式で表示されてしまい、一度各セルをアクティブにしないとシート2の書式が適用されません。
どうすればアクティブにしなくても正常表示できるか、お知恵を貸してください。
なお、作成にあたり以下の条件があります。
(1)運用時に全シートはパスワード保護されるため、値に対しての入力や修正、及びショートカットやボタンによる動作は不可
(2)コピー元の書式は「文字列」固定、コピー先の書式は「ユーザー定義」固定で、さらに各行ごとに定義が異なる
(3)当マクロはファイル呼出時に自動的に実行される
以下、ソースコードになります(Excel2003 SP3、VB6.5で作成)
Dim first_Row As Integer 'シート1のデータ先頭行
Dim first_Col As Integer 'シート1のデータ先頭列
Dim last_Row As Integer 'シート1のデータ最終行
Dim last_Col As Integer 'シート1のデータ最終列
Dim first_KeyNo As Integer 'シート2のキー番号先頭行
Dim last_KeyNo As Integer 'シート2のキー番号最終行(今回省略)
(中略、↑のデータを各ワークシートからセット)
Dim i As Integer 'シート1のカウント用変数
Dim k As Integer 'シート2のカウント用変数
i = first_Row
k = first_KeyNo
'データ最終行になるまで処理を繰り返す
Do While(i >= first_Row and i < last_Row)
'シート1と2のキーNoがイコールならセット
If Worksheets("シート1").Cells(k, 1).Value = Worksheets("シート2").Cells(i, 2).value Then
Worksheets("シート1").Range(Cells(i, first_Col),Cells(i, last_Col).Copy
Worksheets("シート2").Range(Cells(k, 1),Cells(k, 20).PasteSpecial paste:=xlValues
Application.CutCopyMode = False
'イコールでないなら、イコールになるまでシート2のキー番号を検索
ElseIf Then
(中略)
EndIf
i = i + 1
k = k + 1
Loop
VBAは今回初めて作成するので、見づらいかと思いますがよろしくお願いいたします。
お礼
brazil02です やりたかったことが出来ました 有難うございました