複数ファイルの一部分を結合して一つのファイルにする
Sub MergeFiles()
Dim fDialog As FileDialog
Dim wbDest As Workbook
Dim wbSrc As Workbook
Dim wsDest As Worksheet
Dim wsSrc As Worksheet
Dim i As Long
Dim lRow As Long
Dim lCol As Long
'ファイル選択ダイアログを表示し、選択されたファイルを取得
Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
With fDialog
.AllowMultiSelect = True
.Title = "Select files to merge"
If .Show = -1 Then
'結合先のワークブックを作成
Set wbDest = Workbooks.Add
Set wsDest = wbDest.Sheets(1)
wsDest.Name = "Merged Data"
'選択されたファイルを1つずつ読み込んで、結合先シートに貼り付け
For i = 1 To .SelectedItems.Count
Set wbSrc = Workbooks.Open(.SelectedItems(i))
Set wsSrc = wbSrc.Sheets(1)
'結合先シートの最終行を取得
lRow = wsDest.Cells(wsDest.Rows.Count, "A").End(xlUp).Row
lCol = wsDest.Cells(1, wsDest.Columns.Count).End(xlToLeft).Column
'選択されたシートの2行目から最終行までを結合先シートに貼り付け
wsSrc.Range("A2:Z" & wsSrc.Cells(wsSrc.Rows.Count, "A").End(xlUp).Row).Copy _
Destination:=wsDest.Cells(lRow + 1, 1)
wbSrc.Close False
Next i
wbDest.SaveAs "Merged Data.xlsx"
End If
End With
End Sub
3つのコンボボックスで選択されたシートを取得し、それらを新しいシートに順にコピーして貼り付け
Private Sub CommandButton1_Click()
Dim ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet, wsNew As Worksheet
Dim lastRow1 As Long, lastRow2 As Long, lastRow3 As Long
Set ws1 = ThisWorkbook.Sheets(ComboBox1.Value)
Set ws2 = ThisWorkbook.Sheets(ComboBox2.Value)
Set ws3 = ThisWorkbook.Sheets(ComboBox3.Value)
Set wsNew = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
wsNew.Name = "Concatenated Sheets"
lastRow1 = ws1.Cells(ws1.Rows.Count, 1).End(xlUp).Row
lastRow2 = ws2.Cells(ws2.Rows.Count, 1).End(xlUp).Row
lastRow3 = ws3.Cells(ws3.Rows.Count, 1).End(xlUp).Row
ws1.Range("A1:A" & lastRow1).Copy wsNew.Range("A1")
ws2.Range("A1:A" & lastRow2).Copy wsNew.Range("A" & lastRow1 + 1)
ws3.Range("A1:A" & lastRow3).Copy wsNew.Range("A" & lastRow1 + lastRow2 + 1)
End Sub
Function kanjiToKatakana(ByVal kanji As String) As String
Dim i As Integer
Dim result As String
For i = 1 To Len(kanji)
Select Case Mid(kanji, i, 1)
Case "一"
' 二桁または三桁数字の場合
If (i + 1 <= Len(kanji) And Mid(kanji, i + 1, 1) = "一") Or (i + 2 <= Len(kanji) And Mid(kanji, i + 1, 1) = "五" And Mid(kanji, i + 2, 1) = "一") Then
Select Case Mid(kanji, i, 1)
Case "一"
result = result & "イチ"
i = i + 1
' 一五一の場合
If (i + 1 <= Len(kanji) And Mid(kanji, i + 1, 1) = "五" And Mid(kanji, i + 2, 1) = "一") Then
result = result & "ゴ"
i = i + 1
End If
result = result & "チ"
Case "五"
result = result & "ゴ"
i = i + 1
result = result & "チ"
End Select
Else
result = result & "イチ"
End If
Case "二"
result = result & "ニ"
Case "三"
result = result & "サン"
Case "四"
result = result & "シ"
Case "五"
result = result & "ゴ"
Case "六"
result = result & "ロク"
Case "七"
result = result & "シチ"
Case "八"
result = result & "ハチ"
Case "九"
result = result & "キュウ"
Case "十"
result = result & "ジュウ"
Case Else
' その他の文字はそのまま出力
result = result & Mid(kanji, i, 1)
End Select
Next i
kanjiToKatakana = result
End Function
=LEFT(A1,1)&IF(RAND()<0.5,"",".")&MID(A1,2,1)&IF(RAND()<0.5,"",".")&MID(A1,3,1)&IF(RAND()<0.5,"",".")&MID(A1,4,1)&IF(RAND()<0.5,"",".")&MID(A1,5,1)&IF(RAND()<0.5,"",".")&MID(A1,6,1)&IF(RAND()<0.5,"",".")&MID(A1,7,1)&IF(RAND()<0.5,"",".")&MID(A1,8,1)&IF(RAND()<0.5,"",".")&MID(A1,9,1)&IF(RAND()<0.5,"",".")&MID(A1,10,1)&IF(RAND()<0.5,"",".")&RIGHT(A1,1)