[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『表と表と合わせたいのです』(shiiho)
過去ログから見つけて使用しているのですが…[[20050721182519]]
@ シート1は入力画面として品名ごとに入力。マクロ実行すると、各品名毎の品名 シートが自動で出来、データがコピーカットして貼付られている状態になっております。
A ですが、コピーされるシート1のデータには関数が入力されているのですが、 @のマクロを使用するとコピーカットされた場所の関数は全て消えるため、その後、 別のマクロで関数が入るように作成しました(…自身のないマクロですが(^^ゞ)。 ちなみに書式は残っております
B それぞれのマクロを一つのボタンなどで一気にしたいのですが・・・。 しかも途中でコピーする前にプレビュー画面で確認して、そのまま印刷までして その後データの貼り付け ⇒ 関数データ作成ということを一つのボタンでしかも 簡単なマクロで、というかなりわがままなことはできないものでしょうか?
大変、よくばりなことを言っておりますが、どなたか手助けして頂けないでしょうか…?
よろしくお願いします_(._.)_
@
'---------------------------------
Sub Grouping()
'---------------------------------
Dim i%
Application.ScreenUpdating = False
With Worksheets(1)
For i = 2 To .Range("C65535").End(xlUp).Row
Call AddLine(i, .Cells(i, 2).Value)
Next
End With
Application.ScreenUpdating = True
End Sub
'---------------------------------
Sub AddLine(lineNum%, sheetName$)
'---------------------------------
Dim lastLine%
Call checkAndMake(sheetName)
lastLine = Worksheets(sheetName).Range("C65535").End(xlUp).Row + 1
Worksheets(1).Rows(lineNum).Copy
Worksheets(sheetName).Rows(lastLine).Insert Shift:=xlDown
Application.CutCopyMode = False
Worksheets(1).Activate
Worksheets(1).Rows(lineNum).ClearContents
Range("b2").Select
End Sub
'---------------------------------
Sub checkAndMake(sheetName$)
'---------------------------------
Dim tmpWS As Worksheet
On Error Resume Next
Set tmpWS = Worksheets(sheetName)
If tmpWS Is Nothing Then
Worksheets.Add after:=Worksheets(Worksheets.Count)
Worksheets(Worksheets.Count).Name = sheetName
Worksheets(1).Rows(1).Copy
Worksheets(sheetName).Rows(1).Insert Shift:=xlDown
End If
On Error GoTo 0
End Sub
'---------------------------------------------------------------------------------------------------- A Sub ダブリチェック()
Dim WBK As Workbook
Dim SH1 As Worksheet
Set WBK = ThisWorkbook
Set SH1 = WBK.Worksheets("入力画面")
SH1.Range("G2").Select
ActiveCell.FormulaR1C1 = _
"=IF(RC[-3]=0,"""",IF(AND(R[-1]C[-1]<RC[-2],RC[-2]<=RC[-1]),"""",""ダブっています""))"
Range("G2").Select
Selection.AutoFill Destination:=Range("G2:G20")
Range("B2").Select
End Sub
'--------------------------------------------------------------------------------------------------------- B Sub 印刷前確認()
'確認 1
If MsgBox("入力に間違いはありませんか?", vbOKCancel + vbDefaultButton1 + _
vbExclamation, "確認") <> vbOK Then
'OKでなかったらBeepを鳴らしてExit Sub
Exit Sub
End If
'印刷確認
If MsgBox("印刷を実行しますか?", vbOKCancel + vbDefaultButton1 + _
vbInformation, "印刷確認") <> vbOK Then
'OKでなかったらExit Sub
Exit Sub
End If
'印刷実行
ActiveWindow.SelectedSheets.PrintOut Copies:=1
'印刷完了
MsgBox " 印刷完了", , "印刷完了"
End Sub
すみません、 上の↑印刷ではまでプレビュー画面を出すようには出来ていません。
できればプレビュー画面になってからメッセージが出力されるようにしたいのです…
みなさんお力をかして下さい<(_ _)>
少し相談文を整形させていただきました。元のトピック。 [[20050721182519]]『一つのシートから各個人ごとに分割したシートを作る』(エクセル初心者) 印刷プレビュー表示中にメッセージボックスを表示したい、というのご希望のようですが・・・・ 検証。 プレビュー表示中にメッセージボックスを表示するのはムリでしょう。 ならば、ユーザーフォームからプレビューを表示すれば、と思って試作したら、 プレビューと同時にエクセルが反応しなくなりました。やばいやばい。 プレビューしたい気持ちは分かりますが、プレビューしないと心配なレイアウトですか? >印刷までしてその後データの貼り付け ⇒ 関数データ作成 という順番でコマンドボタンクリックでマクロを実行ということなら、 コントロールツールバーからコマンドボタンをシートに作成、 ボタン右クリック、「コードの表示」選択 下記のようなコードを作成します。 Private Sub CommandButton1_Click() Call 印刷前確認 Call Grouping Call ダブリチェック End Sub デザインモードを終了してコマンドボタンをクリックすると連続でマクロ実行。 ただし、 Mookさんの作ったマクロでの Worksheets(1) (一番左のシート)と shiihoさんの作られたマクロでの Worksheets("入力画面") が同じものとして検証 しましたが、文面では同じシートであるとは確認できません。 この点は、ご自身での検証が必要ですよ。 (みやほりん)(-_∂)b
お返事ありがとうございました (^o^)
『Call〜』でやってみました(^.^)
少し内容も変更してみたら、中々理想に近づきました〜♪♪
どうもありがとうございました (*'▽'*)/
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.