エクセルで、出来そうなのですが、教えてください。
初心者で、初めて質問します。
私の会社のパートさんや、アルバイトさんの勤怠表と給与明細を作ってるのですが、
下のような スタッフ一覧を作りそのデーダーをもとに各個人名のシートの各項目セルに
飛ぶように作ってみましたが、
知りたいのは 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.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ページ固定ではなければ、必要なページを印刷するようなロジックを組み込まないとだめですが…
お礼が遅くなりました。明日会社で、
テストしてみます。 上手く行きそうです。
ありがとうございました。 この式を見本にして、他の事もやってみます。
ホームページのほうも、 勉強になるので、お気に入りに登録させていただきました。
何度も 付き合ってもらい感謝してます。 ありがとうございました。
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.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.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.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
となりますが オートフィルターで抽出して手印刷ではダメなのですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのブック分割マクロを...
-
Excel VBA ピボットテーブルに...
-
【条件付き書式】countifsで複...
-
VBA 抽出後、別シートにコピー
-
文字の色も参照 VLOOKUP
-
"りんご"と"みかん"というシー...
-
エクセルの保護で、列の表示や...
-
エクセルで、チェックボックス...
-
エクセル マクロ 標準モジュー...
-
Excel 2段組み
-
ExcelのVlookup関数の制限について
-
Excelで、ファイル名、シート名...
-
Excelでの並べ替えを全シートま...
-
検索に引っ掛からない文字行を...
-
Excelで条件別にシートを振り分...
-
【VBA EXCEL データ有無 行 判...
-
A列をK列に変更
-
エクセル マクロで質問です
-
エクセル関数について、特定の...
-
VBA 元データに上書きする 列番...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelのVlookup関数の制限について
-
エクセルの保護で、列の表示や...
-
文字の色も参照 VLOOKUP
-
Excel の複数シートの列幅を同...
-
VBAで繰り返しコピーしながら下...
-
【条件付き書式】countifsで複...
-
エクセル マクロ 標準モジュー...
-
エクセルの列の限界は255列以上...
-
Excelでの並べ替えを全シートま...
-
エクセルで、チェックボックス...
-
エクセルマクロを教えてほしい...
-
SUMPRODUCTにて別シートのデー...
-
Excel VBA ピボットテーブルに...
-
エクセルのブック分割マクロを...
-
【VBA】複数のシートの指定した...
-
excel 複数のシートの同じ場所...
-
Excelに自動で行の増減をしたい...
-
スプレッドシートでindexとIMPO...
-
エクセルで横並びの複数データ...
-
エクセル複数シートのデータを...
おすすめ情報