Excel에서 Excel로 편지 병합 Excel만으로 편지 병합
Excel만으로 "편지 병합"할 수있는 매크로를 만듭니다.
일로, Word+Excel의 편지 병합을 들었습니다만, 순서가 너무 많아, 어떻게든 하고 싶다고 생각해, 작성한 비망록입니다.
그 다음에, 연하 엽서의 표서를 만들어 보았습니다.
검색하면 여러 가지를 찾을 수 있습니다.
h tps // 모코모코모모코. 이 m/에 x세 l_마c로_p 인 t/
양식만 빌립니다.
이것이 좋았다.
h tp // 엔기세이시. 아. 코오칸. jp / 에 x 세 l_ mp ぇ. htm#에tc
의 Excel 주소 씰 인쇄 (가로 3면 세로 7면 = 21면 탁 씰용 전용)
이것을 개조해 보겠습니다. (작가님, 무단으로 미안해)
인쇄 한다/하지 않는다 열을 추가, 경칭도 추가
printSheet를 매크로로 직접 붙여넣은 것을 이 시트에 붙여넣기로 변경
이 시트의 타이틀 열과 행수분만큼 복사해, 인쇄 동작에, 이것을 data 시트의 끝까지 반복한다
예를 들면, 1 시트 4장이라면, 4행으로 해, printSheet의 양식 변경에 대응
인쇄용 시트, printData 시트에 대해 식 예:=PrintData!E2로 데이터를 전기
그래서 같은 것을 4건 인쇄하는 경우는 printSheet로 대응 가능
매크로에서 사용하는 이름의 정의는이 두 가지입니다.
매크로
비망록입니다. 이제 모두
Module1Option Explicit
Sub 宛名シール印刷()
Dim cHead As Integer ' printDataテーブルの列数
Dim cRows As Integer ' printDataテーブルの行数
cHead = Worksheets("printData").Range("TBL_printData").ListObject.HeaderRowRange.Count
cRows = Worksheets("printData").Range("TBL_printData").ListObject.ListRows.Count
Dim iData As Long ' data処理行
Dim iPData As Long ' printData処理行
Dim jPData As Long ' printData処理列
Dim rngData As Range ' dataのrange
Dim rngPData As Range ' printDataのrange
printDataClear 'sheet[printData]の名前[TBL_printData]範囲をクリア
iData = 0
iPData = 0
Set rngData = Worksheets("data").Range("A5") '処理開始位置
Set rngPData = Worksheets("printData").Range("B1") '処理開始位置
Do Until rngData.Offset(iData, 0).Value = ""
If rngData.Offset(iData, 0).Value = "する" Then
iPData = iPData + 1
For jPData = 1 To cHead
rngPData.Offset(iPData, jPData - 1) = rngData.Offset(iData, jPData - 1)
Next
If iPData > (cRows - 1) Then
実印刷
printDataClear 'sheet[printData]の名前[TBL_printData]範囲をクリア
iPData = 0
Worksheets("data").Select
End If
End If
iData = iData + 1
Loop
If iPData > 0 Then 実印刷
End Sub
' 宛先シール実印刷
Sub 実印刷()
Sheets("printSheet").Select
With ActiveSheet.PageSetup
.LeftMargin = Application.InchesToPoints(0#)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0)
.BottomMargin = Application.InchesToPoints(0)
.HeaderMargin = Application.InchesToPoints(0)
.FooterMargin = Application.InchesToPoints(0)
.Orientation = xlPortrait
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Zoom = 98
End With
Range("Print_Area").Select
Select Case MsgBox(prompt:="印刷を続けますか?" & vbCrLf & "いいえ:プレビュー", Buttons:=vbYesNoCancel)
Case vbYes
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Case vbNo
ActiveWindow.SelectedSheets.PrintPreview
Case Else
Worksheets("data").Select
End
End Select
Worksheets("data").Select
End Sub
'sheet[printData]の名前[printData]範囲をクリア
Sub printDataClear()
Worksheets("printData").Range("TBL_printData").ClearContents
End Sub
매크로 그대로
1 페이지 1 장 양식도 해 보았습니다.
printData 시트와 printSheet 시트만 변경하면 됩니다.
잊어 버리기 방지 목적지 씰 인쇄 _21면 씰 개.xlsm 편지 병합 인쇄.xlsm
htps : // 기주 b. 이 m / 너무 0301 / 제발
연하장 인쇄
주소록 템플릿은 여기에서 받았습니다.
htps //w w. 미 c 로소 ft. 코 m/쟈-jp/오후우세/피 pc/넨가죠/05. 아 spx
연하 엽서의 이미지는 스캐너로 캡처하거나 Wrod의 마법사에서도 사용할 수 있습니다.
이런 느낌이 듭니다.
Reference
이 문제에 관하여(Excel에서 Excel로 편지 병합 Excel만으로 편지 병합), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/granpa/items/4edfe4e5924f6a4d5ba5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
비망록입니다. 이제 모두
Module1
Option Explicit
Sub 宛名シール印刷()
Dim cHead As Integer ' printDataテーブルの列数
Dim cRows As Integer ' printDataテーブルの行数
cHead = Worksheets("printData").Range("TBL_printData").ListObject.HeaderRowRange.Count
cRows = Worksheets("printData").Range("TBL_printData").ListObject.ListRows.Count
Dim iData As Long ' data処理行
Dim iPData As Long ' printData処理行
Dim jPData As Long ' printData処理列
Dim rngData As Range ' dataのrange
Dim rngPData As Range ' printDataのrange
printDataClear 'sheet[printData]の名前[TBL_printData]範囲をクリア
iData = 0
iPData = 0
Set rngData = Worksheets("data").Range("A5") '処理開始位置
Set rngPData = Worksheets("printData").Range("B1") '処理開始位置
Do Until rngData.Offset(iData, 0).Value = ""
If rngData.Offset(iData, 0).Value = "する" Then
iPData = iPData + 1
For jPData = 1 To cHead
rngPData.Offset(iPData, jPData - 1) = rngData.Offset(iData, jPData - 1)
Next
If iPData > (cRows - 1) Then
実印刷
printDataClear 'sheet[printData]の名前[TBL_printData]範囲をクリア
iPData = 0
Worksheets("data").Select
End If
End If
iData = iData + 1
Loop
If iPData > 0 Then 実印刷
End Sub
' 宛先シール実印刷
Sub 実印刷()
Sheets("printSheet").Select
With ActiveSheet.PageSetup
.LeftMargin = Application.InchesToPoints(0#)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0)
.BottomMargin = Application.InchesToPoints(0)
.HeaderMargin = Application.InchesToPoints(0)
.FooterMargin = Application.InchesToPoints(0)
.Orientation = xlPortrait
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Zoom = 98
End With
Range("Print_Area").Select
Select Case MsgBox(prompt:="印刷を続けますか?" & vbCrLf & "いいえ:プレビュー", Buttons:=vbYesNoCancel)
Case vbYes
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Case vbNo
ActiveWindow.SelectedSheets.PrintPreview
Case Else
Worksheets("data").Select
End
End Select
Worksheets("data").Select
End Sub
'sheet[printData]の名前[printData]範囲をクリア
Sub printDataClear()
Worksheets("printData").Range("TBL_printData").ClearContents
End Sub
매크로 그대로
1 페이지 1 장 양식도 해 보았습니다.
printData 시트와 printSheet 시트만 변경하면 됩니다.
잊어 버리기 방지 목적지 씰 인쇄 _21면 씰 개.xlsm 편지 병합 인쇄.xlsm
htps : // 기주 b. 이 m / 너무 0301 / 제발
연하장 인쇄
주소록 템플릿은 여기에서 받았습니다.
htps //w w. 미 c 로소 ft. 코 m/쟈-jp/오후우세/피 pc/넨가죠/05. 아 spx
연하 엽서의 이미지는 스캐너로 캡처하거나 Wrod의 마법사에서도 사용할 수 있습니다.
이런 느낌이 듭니다.
Reference
이 문제에 관하여(Excel에서 Excel로 편지 병합 Excel만으로 편지 병합), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/granpa/items/4edfe4e5924f6a4d5ba5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
주소록 템플릿은 여기에서 받았습니다.
htps //w w. 미 c 로소 ft. 코 m/쟈-jp/오후우세/피 pc/넨가죠/05. 아 spx
연하 엽서의 이미지는 스캐너로 캡처하거나 Wrod의 마법사에서도 사용할 수 있습니다.
이런 느낌이 듭니다.
Reference
이 문제에 관하여(Excel에서 Excel로 편지 병합 Excel만으로 편지 병합), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/granpa/items/4edfe4e5924f6a4d5ba5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)