エクセルで、出来そうなのですが、教えてください。
初心者で、初めて質問します。
私の会社のパートさんや、アルバイトさんの勤怠表と給与明細を作ってるのですが、
下のような スタッフ一覧を作りそのデーダーをもとに各個人名のシートの各項目セルに
飛ぶように作ってみましたが、
知りたいのは A列の出勤の上がってる方だけ、1つの操作で、印刷したいのです。
A 列の出勤数は、各個人明細所の出勤数に連動してます。
E 列の名前と個人明細書のSheetにリンクさせてます。
田中太郎さんは、sheet1、田中花子さんは、sheet2に、なっているので、
A列が、0より多い時は、5番目の氏名のリンクを印刷する。 等 VLOOKUPやIFでやれないかと
考えましたが、 答えが出ません、マクロも自動登録しかできないので、困ってます。
スミマセンとても分かりずらいのですが・・・・A列出勤数 B列週払い(チェツクリスト)
c列個人シートのデーターを読ますためのNO、D列 会社の個人コード、
E列 名字(シートへリンクさせてます。) F 名前・・・・G.H.・・・と他のデータがあります。
行は、 60行位です。
A.............B.....,,...,,..C............D...................E.............F...........G
1..........出勤数.......週払..........No..............コード............氏名..............勤務地
2...........20.............................1 ..............35982.......... 田中 太郎......... 日本会社
3...........1.............................2 ...............358055..........田中 花子.........日本会社
4............2.............................5...............39488........林 太郎.......... 日本会社.....
リンク先を印刷するマクロは、こんな感じでよいのでしょうか?
あと どのようにしてA列を検索してE列のリンク先を、印刷させるのかわかりません。
Range("E3").Select
Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
ExecuteExcel4Macro "PRINT(1,1,2,,,TRUE,,FALSE)"
End Sub
印刷だけクリアー出来れば、出来上がりにしようと思っていますが、
いろいろ ネットや本で探しても 基本の検索や質問の仕方が 分からないので
お手上げ 状態です。 力を貸してください。 お願いします。
No.1
- 回答日時:
ここで教えられるのには限界がありますね
単にA列が該当するデータかどうかという判定は
Dim Endrow As Long
Dim C As Range
Endrow=Range("A65536").End(Xlup).Row
For Each C In Rnage("A2:A" & Endrow)
If Val(C.Value)>=1 Then
印刷処理
End If
Next
となりますが オートフィルターで抽出して手印刷ではダメなのですか?
No.2
- 回答日時:
マクロは下記の通りです。
・2行目からA列の最終行まで処理しています。
・A列(出勤数)が0の場合、印刷していません。
・E列(氏名)は必ずハイパーリンク(シート)が貼ってあるとしています。
※テストの時は「PrintOut」ではなく「PrintPreview」にした方が紙の無駄がないと思います。
Sub 印刷()
Dim I As Integer
Dim リンクシート As String
For I = 2 To Cells(Rows.Count, "A").End(xlUp).Row
If Cells(I, "A") <> 0 Then
リンクシート = Cells(I, "E").Hyperlinks(1).SubAddress
リンクシート = Left(リンクシート, InStr(リンクシート, "!") - 1)
Sheets(リンクシート).PrintOut
End If
Next I
End Sub
お礼がおしくなりました。
ありがとうございます。途中たぶんこちらの問題で、 マクロが使えないブック・・・・や・・
スパイラルエラーなど
分からない所も出てきましたが、 なんとか動きました。
印刷の部分で つまずき 止まっていましたので、 驚きと感謝でいっぱいです。
背伸びしすぎだと反省してます。
以前 プリントのマクロを作ったのですが、
教えていただいたマクロにどのようにして ページ指定すればよろしいでしょうか。
よろしければ おねがいします。
ExecuteExcel4Macro "PRINT(2,1,1,1,,,,,,,,2,,,TRUE,,FALSE)"
ExecuteExcel4Macro "PRINT(2,3,3,1,,,,,,,,2,,,TRUE,,FALSE)"
No.3
- 回答日時:
>A列の出勤の上がってる方だけ
この整理表にもとづいて各人のシートを印刷するのでなく、元の各人シートの出金数が>=1を印刷すれば良いのでは。それが入っているセルは各シートで一定ではないのかな。
Sub test01()
Dim sh As Worksheet
For Each sh In Worksheets
MsgBox sh.Range("D10")
If (sh.Range("D10")) <> "" Then
'sh.Range("a1:E15").PrintOut
MsgBox sh.Name
End If
Next
End Sub
これで各人シートが同一ブックにあれば、全員のD10セルの値ををチェックして、D10が空白でなければシートを印刷することが出来る。
ーー
ハイパーリンクに持ち込んだり、特にExecuteExcel4Macroを使ったりするのは、もっと十分VBAに熟達してから、良くわかってあえて使うべきのことで、コンなのに初めから道を求めるのは邪道とおもう。
回答ありがとうございます。
遅くなりスミマセン おっしゃるとうり 初めは、各シートごとに個人明細がありますので、
そこを 検索して、印刷させようと考え、他の皆さんの質問など、拝見していたのですが、
どうしても 分からなくて、 その時に他の方の質問で、ハイパーリンクを読み込んで開くと言う
のを、発見したので、 ひょっとして これかなと 思い質問してみたのですが、
背伸びし過ぎでしたね! さっぱり分かりません。
ちなみに明細のあるシートには、 C12 ・・・作業時間
C47・・・・ 出勤数 が、表示されます。
たとえば印刷したいシートのページを指定した時は、どうすればよいでしょうか?
よろしければ 教えてください。
ありがとうございました。
No.4
- 回答日時:
お疲れさまです。
> 教えていただいたマクロにどのようにして ページ指定すればよろしいでしょうか。
PrintOut のパラメタは以下の通りです。
PrintOut (From,To,Copies,Preview,ActivePrinter,PrintToFile,Collate,PrToFileName)
ページ指定なら最初に3つを指定すれば良いかと思います。
From :印刷を開始するページの番号を指定します。
To :印刷を終了するページの番号を指定します。
Copies:印刷部数を指定します。
何度も教えていただいて恐縮です。
上手く動かないので、今いろんな、パターンを試してますが、
上手くゆきません・・・・・ スミマセン
1ページと3ペジをプリントさせていのですが・・・
あと
From1TO2Copies1
For I = 2 To Cells(Rows.Count, "A").End(xlUp).Row
If Cells(I, "A") <> 0 Then
リンクシート = Cells(I, "E").Hyperlinks(1).SubAddress
リンクシート = Left(リンクシート, InStr(リンクシート, "!") - 1)
PrintOut(From:1,To:3,Copie2,Preview,ActivePrinter,PrintToFile,Collate,PrToFileName)
Sheets(リンクシート).PrintPreview
(リンクシート, "!") - 1)のあとから書けばよいのでしょうか、
ご迷惑かけます。
今自力で色々かいてます。なんとかがんばります。 ありがとうございます。
No.5ベストアンサー
- 回答日時:
>1ページと3ペジをプリントさせていのですが・・・
一度のPrintOutでは飛びページは指定できないと思いますので、単純に1ページと3ページを印刷します。
Sub 印刷()
Dim I As Integer
Dim リンクシート As String
For I = 2 To Cells(Rows.Count, "A").End(xlUp).Row
If Cells(I, "A") <> 0 Then
リンクシート = Cells(I, "E").Hyperlinks(1).SubAddress
リンクシート = Left(リンクシート, InStr(リンクシート, "!") - 1)
Sheets(リンクシート).PrintOut From:=1,to:=1
Sheets(リンクシート).PrintOut From:=3,to:=3
End If
Next I
End Sub
※1,3ページ固定ではなければ、必要なページを印刷するようなロジックを組み込まないとだめですが…
お礼が遅くなりました。明日会社で、
テストしてみます。 上手く行きそうです。
ありがとうございました。 この式を見本にして、他の事もやってみます。
ホームページのほうも、 勉強になるので、お気に入りに登録させていただきました。
何度も 付き合ってもらい感謝してます。 ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる 3 2022/12/21 09:07
- Visual Basic(VBA) エクセルについて教えてください。 3 2023/06/28 09:11
- Excel(エクセル) 請求書と領収書の作成 4 2022/11/10 16:13
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) エクセルでキーリストからデータを取り出して1枚1枚印刷するには? 11 2022/06/27 09:52
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Excel(エクセル) 【マクロ】webアドレスにて指定されたCSVファイル【excelソフト表示】を印刷する件 1 2023/02/15 01:52
- Excel(エクセル) Excelで質問です! 現在マクロを勉強中の初心者です。 以下のような表から、会社名が空白のもの以外 2 2022/06/14 12:16
- Excel(エクセル) エクセルの条件付き書式 個人シートを参照して集計シートに色付けしたい 1 2023/06/22 00:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文字の色も参照 VLOOKUP
-
ExcelのVlookup関数の制限について
-
VBAで繰り返しコピーしながら下...
-
エクセルの保護で、列の表示や...
-
Excel の複数シートの列幅を同...
-
エクセルで横並びの複数データ...
-
エクセルで、チェックボックス...
-
エクセルのブック分割マクロを...
-
エクセルで、book全体の検索&...
-
エクセル マクロ 標準モジュー...
-
Excelでの並べ替えを全シートま...
-
エクセルの複数シートにあるデ...
-
エクセルの列の限界は255列以上...
-
SUMPRODUCTにて別シートのデー...
-
Excel複数シートにあるデータを...
-
Excelで全てのシートに一気に列...
-
エクセルの表を自動的に、項目...
-
VBAで項目ごとにシートを分けた...
-
エクセルVBA 行追加時に自...
-
エクセルシートのデータを1列飛...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelのVlookup関数の制限について
-
文字の色も参照 VLOOKUP
-
オートフィルタ使用時にCOUNTIF...
-
エクセルの保護で、列の表示や...
-
VBAで繰り返しコピーしながら下...
-
エクセル関数に詳しい方、教え...
-
【条件付き書式】countifsで複...
-
Excel の複数シートの列幅を同...
-
エクセル マクロ 標準モジュー...
-
エクセルで横並びの複数データ...
-
エクセルの列の限界は255列以上...
-
Excelでの並べ替えを全シートま...
-
VLOOKアップ関数の結果の...
-
SUMPRODUCTにて別シートのデー...
-
エクセルで、チェックボックス...
-
Excel VBA ピボットテーブルに...
-
【エクセル】1列のデータを交...
-
エクセルVBAで、ある文字を含ん...
-
エクセルのブック分割マクロを...
-
excel 複数のシートの同じ場所...
おすすめ情報