![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
いつもお世話になってます。
マクロに関してですが、
見えているセル(可視セル)のみコピー&ペーストをする方法についての質問です。
請求書を連続印刷するマクロを質問させていただいたことがありまして。
(http://oshiete.goo.ne.jp/qa/6948578.html)
色々ありまして現在この形で使用しています。
Sub sample()
Dim lastrow As Long
Dim i As Long
Dim hassou_column As Integer
hassou_column = Range("W3").Column '条件項目のある列を指定(発送列)
'「発送」列の最終行を取得
lastrow = Range("W3").End(xlDown).Row
For i = 4 To lastrow
If Cells(i, hassou_column) = "●" Then
Call mySeikyusyoPrint(i)
End If
Next i
MsgBox "実行しました"
End Sub
Sub mySeikyusyoPrint(ByVal rowNum As Long)
Dim koumoku(24) As String
Dim j As Integer
Sheets("売上").Select
'「売上」側の処理
For j = 1 To 24
koumoku(j) = Cells(rowNum, j)
Next j
'「請」側の処理
Sheets("請").Select
For j = 1 To 24
Cells(1, j) = koumoku(j)
Next j
ActiveWindow.SelectedSheets.PrintOut From:=2, To:=32766, Copies:=1
Sheets("売上").Select
End Sub
「売上」「請」の2つシートがあり、「売上」のW列において●があるところを判定し、
●があるところだけ連続印刷していくという仕様になっています。
「売上シート」の1行目コピー→「請」シート1行目に貼り付け→印刷→
「売上シート」の次の行をコピー→「請」シート1行目に貼り付け→印刷
という繰り返しになっています。
「売上」シートには非表示列が存在しまして。
現在は非表示部分を削除して使用していますが、本来は消したくないという事もあり
今回このマクロに「可視セル」だけコピー&ペーストさせるにはどうすればいいか、
という話になり、その点でつまずきまして質問をさせていただきました。
何度か修正を加えたのですがうまくいかず。
可視セルと言うと
Selection.SpecialCells(xlCellTypeVisible).Select
で、可視セルを選択して、という流れかと思います。
しかし勉強不足以外の何物でもないのですが、結局わからず。
上記のマクロを修正でも全く別の形でも構いませんので、
皆様の知恵をお借しいただけないでしょうか。
いつも申し訳ございません。何卒よろしくお願い致します。
No.2ベストアンサー
- 回答日時:
たとえば売上シートのABDFG列が可視(CE列が非表示)だとして,ABDFG列の値を「どこに」貼り付けたいのかが説明不足です。
非表示列は詰めて請シートのABCDE列に貼りたいのか,それとも非表示の列はスキップして列は対応したままABDFG列に記入したいのか。
また,非表示の列は「常に決まっている」のか,それともあんまりフツー考えにくいことですが何かの理由で「マクロを実行する都度イチイチ調べて今どこが見えてるのか/非表示なのか確認しなきゃならない」ということなのか,どういう状況なんでしょうか。
作成例:
非表示の列は可変
非表示列はスキップしてABDFG列をABDFG列に転記
sub mySeikyusyoPrint(byval rowNum as long)
dim j as long
’準備必ず
worksheets("請").range("A1:X1").clearcontents
’可視列を同じ列に転記する
for j = 1 to 24
if not worksheets("売上").columns(j).hidden then
worksheets("請").cells(1, j).value = worksheets("売上").cells(rownum, j).value
end if
next j
worksheets("請").printout from:=2, to:=999, copies:=1
end sub
ヤリタイ事を聞いてから回答するのはメンドクサイので:
sub mySeikyusyoPrint(byval rowNum as long)
dim j as long
dim k as long
’準備必ず
worksheets("請").range("A1:X1").clearcontents
’可視列を詰めて転記する
for j = 1 to 24
if not worksheets("売上").columns(j).hidden then
k = k + 1
worksheets("請").cells(1, k).value = worksheets("売上").cells(rownum, j).value
end if
next j
worksheets("請").printout from:=2, to:=999, copies:=1
end sub
長い上に説明不足で大変申し訳ございませんでした。
やりたかったのは後に教えていただいたマクロの方になります。
おかげで解決しました。
お手数おかけしてしまい申し訳ございません。
本当にありがとうございました!
No.1
- 回答日時:
マクロの記録を取って勉強すればすぐ判る。
マクロの記録はいつも念頭に置いておいて。
操作は、VBAをやるぐらいなら知って居ないとおかしいが
範囲指定して
編集ージャンプー「セル選択」ボタンー可視セルーOK
でどんなコードになるか。
これを応用して出来ないですか?
質問文が長いが、ほかに聞きたい点あるのかな?
仰る通り勉強不足でございました。
マクロの記録ももちろん取ってみてはいたのですが。力及ばずでした。
今後、色々な形でマクロの記録を取りながら、
勉強していきたいと思います。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) コード名シートA列と集計シートA列のコードが一致したら、コード名シートA5からk12の範囲をコピーし 1 2022/08/29 23:46
- Visual Basic(VBA) VBA 請求書自動作成 3 2022/04/24 01:58
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/03/25 08:33
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
一行おきにコピーするマクロが...
-
シート保護の状態で行の追加を...
-
エクセルの関数について(日付で...
-
EXCELにて複数列を同条件(色)...
-
Excelの非表示列も含めてコピー
-
エクセルで空白以外のセルの値...
-
エクセルで表示された値だけ行...
-
エクセル マクロ 貼り付け先が...
-
IF関数
-
Excel 条件に従いセル移動するには
-
VBAで同じブック内の別シー...
-
Excel VBAで日にちを入力して線...
-
マクロ 計算式
-
エクセルでA列セルが空白の時そ...
-
同一列内の複数条件 カウント
-
特定の桁数を抽出
-
エクセル マクロ 条件によっ...
-
エクセルについて教えてくださ...
-
エクセル VBA 指定の範囲内をコ...
-
【マクロ】IF複数条件の上限に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELにて複数列を同条件(色)...
-
一行おきにコピーするマクロが...
-
行数が不規則な一週間ごとの合...
-
Excelの非表示列も含めてコピー
-
シート保護の状態で行の追加を...
-
エクセルで空白以外のセルの値...
-
エクセルの関数について(日付で...
-
エクセル マクロ 貼り付け先が...
-
エクセル VBA 指定の範囲内をコ...
-
エクセルで行挿入した際、自動...
-
エクセルで表示された値だけ行...
-
[Excel VBA]空白セル以外に連番...
-
エクセルVBA 複数列をコピーす...
-
マクロで値がある列までコピー
-
特定の桁数を抽出
-
エクセル マクロ 行や列を削除...
-
エクセルのマクロ、AVERAGEIFを...
-
マクロ初心者です、小数点6桁で...
-
Excel 条件に従いセル移動するには
-
VBAで同じブック内の別シー...
おすすめ情報