開発ノート【共通】
開発ノート【共通】です。
当サイトは、Bootstrap5で製作しています。
役立つサイト
| 種類 | サイト名称/ページタイトル | 説明 |
|---|---|---|
| 開発プラットフォーム | GitHub | プログラムコードやデザインデータのソースを共有しています。 |
| 開発の技術情報 | MDN | 開発をしていて分からないところが出てきたらここ! |
| フリー画像 | Unsplash | 写真を自由に使うことが出来ます。 |
| フリーアイコン | Font Awesome | アイコンをWebフォントとして利用出来ます。 |
| 特殊文字 | Character Entity Reference Chart | こんな文字(¾)、記号(©)を利用することが出来ます。 |
エディタ
| 種類 | サイト名称/ページタイトル | 説明 |
|---|---|---|
| Visual Studio Code | Visual Studio Code |
|
| Atom | Atom |
|
メモ
Dim Wk_OptionButton As String '処理区分(1:姓、2:名)
Dim Wk_Jisshi_Bi As String '実施日(YYYYMMDD)
Dim Wk_Ticket As String 'チケット番号
Dim Wk_Ticket_Eda As String 'チケット番号枝番
Dim Wk_Toroku_No As String '登録番号
Dim Wk_Toroku_Bi As Date '登録日(YYYY/MM/DD)
Dim Wk_Sei As String '姓
Dim Wk_Na As String '名
Dim Wk_Name As String '氏名
Dim Wk_CsvFileName As Variant 'csvファイル名
Dim Wk_RecCnt As Long 'レコードカウンター
Dim Wk_StrRec As String '読み込んだレコード
Dim Wk_StrSplit() As String '読み込んだ項目
Dim Wk_Cnt1 As Integer
Dim Wk_LastRow As Long '最終行
Dim Wk_MyRange As Range '文字置換のセル範囲
Dim Wk_ThisBook As Workbook '当Excelファイル
Dim Wk_RowDell_S As Long '削除する行の最初
Dim Wk_RowDell_E As Long '削除する行の最後
Sub Individual_Proc() '個別処理
Call Init_Proc1 '初期処理
Call Replacement_Proc '文字置き換え処理
Call Print_Proc '外字対応手順.txt出力
MsgBox "個別処理は、正常に終了しました。"
End Sub
Sub Bulk_Proc() '一括処理
'csvファイル選択・実行
Wk_CsvFileName = Application.GetOpenFilename(FileFilter:="CSVファイル(*.csv),*.csv", Title:="csvファイル選択・実行")
If Wk_CsvFileName = False Then
Exit Sub
End If
Open Wk_CsvFileName For Input As #1 'csvファイルオープン
Wk_RecCnt = 0
Do Until EOF(1)
Line Input #1, Wk_StrRec '1行読み込み
Wk_RecCnt = Wk_RecCnt + 1
If Wk_RecCnt = 1 Then Line Input #1, Wk_StrRec '見出しの1レコード目を読み飛ばし
Wk_StrSplit = Split(Wk_StrRec, ",") 'カンマ区切りを配列へ
Call Init_Proc2 '初期処理
Call Replacement_Proc '文字置き換え処理
Call Print_Proc '外字対応手順.txt出力
Loop
Close #1 'csvファイルクローズ
MsgBox "一括処理は、" + Str(Wk_RecCnt) + "件を正常に処理しました。"
End Sub
Sub Init_Proc1() '初期処理
'初期値セット
If Wk_OptionButton = "" Then Wk_OptionButton = Sheets("main").Range("E3").Value '処理区分
Wk_Jisshi_Bi = Sheets("main").Range("C4").Value '実施日(YYYYMMDD)
Wk_Ticket = Sheets("main").Range("C5").Value 'チケット番号
Wk_Ticket_Eda = Sheets("main").Range("C6").Value 'チケット番号枝番
Wk_Toroku_No = Sheets("main").Range("C7").Value '登録番号
Wk_Toroku_Bi = CDate(Format(Sheets("main").Range("C8").Value, "####/##/##")) '登録日(YYYY/MM/DD)
Wk_Sei = Sheets("main").Range("C9").Value '姓
Wk_Na = Sheets("main").Range("C10").Value '名
Wk_Name = Wk_Sei + " " + Wk_Na '氏名
Call Init_Proc '初期処理(共通)
End Sub
Sub Init_Proc2() '初期処理
'初期値セット
Wk_OptionButton = Wk_StrSplit(0)
Wk_Jisshi_Bi = Wk_StrSplit(1) '実施日(YYYYMMDD)
Wk_Ticket = Wk_StrSplit(2) 'チケット番号
Wk_Ticket_Eda = Wk_StrSplit(3) 'チケット番号枝番
Wk_Toroku_No = Wk_StrSplit(4) '登録番号
Wk_Toroku_Bi = CDate(Format(Wk_StrSplit(5), "####/##/##")) '登録日(YYYY/MM/DD)
Wk_Sei = Wk_StrSplit(6) '姓
Wk_Na = Wk_StrSplit(7) '名
Wk_Name = Wk_Sei + " " + Wk_Na '氏名
Call Init_Proc '初期処理(共通)
End Sub
Sub Init_Proc() '初期処理(共通)
Set Wk_ThisBook = Workbooks("外字対応手順作成.xlsm") '当Excelファイル
Call Init_Disp_Proc '初期値表示
End Sub
Sub Init_Disp_Proc() '初期値表示
'初期値表示
Debug.Print "処理区分:" + Wk_OptionButton '処理区分
Debug.Print "実施日(YYYYMMDD):" + Wk_Jisshi_Bi '実施日(YYYYMMDD)
Debug.Print "チケット番号:" + Wk_Ticket 'チケット番号
Debug.Print "チケット番号枝番:" + Wk_Ticket_Eda 'チケット番号枝番
Debug.Print "登録番号:" + Wk_Toroku_No '登録番号
Debug.Print "登録日(YYYY/MM/DD):" + Format(Wk_Toroku_Bi, "yyyy/mm/dd") '登録日(YYYY/MM/DD)
Debug.Print "登録日(和暦):" + Format(Wk_Toroku_Bi, "ggge年m月d日") '登録日(和暦)
Debug.Print "姓:" + Wk_Sei '姓
Debug.Print "名:" + Wk_Na '名
Debug.Print "氏名:" + Wk_Name '氏名
Debug.Print "外字対応手順作成.xlsmのパス:" + Wk_ThisBook.Path + vbCrLf '当Excelファイルのパス
End Sub
Sub Replacement_Proc() '文字置き換え処理
'workシートクリア
Worksheets("work").Cells.Clear
'workシートに元ネタシートセット
Select Case Wk_OptionButton
Case "1"
Wk_LastRow = Sheets("元ネタ(姓を変換)").Cells(Rows.Count, 1).End(xlUp).Row '最終行を取得
Sheets("元ネタ(姓を変換)").Range("A1", "A" + Format(Wk_LastRow, "0")).Copy Destination:=Sheets("work").Range("A1")
Case "2"
Wk_LastRow = Sheets("元ネタ(名を変換)").Cells(Rows.Count, 1).End(xlUp).Row '最終行を取得
Sheets("元ネタ(名を変換)").Range("A1", "A" + Format(Wk_LastRow, "0")).Copy Destination:=Sheets("work").Range("A1")
Case Else
MsgBox "処理区分異常:" + Wk_OptionButton + vbCrLf + "処理を終了します。"
End
End Select
'メール内容コピー
Sheets("work").Range("A6:A55").Value = Sheets("main").Range("F3:F52").Value
'メール内容の不要な行を削除
Wk_RowDell_S = Sheets("main").Cells(Rows.Count, 6).End(xlUp).Row 'メール内容の最終行
Wk_RowDell_E = Sheets("work").Range("A1:A100").Find("■注意").Row
Debug.Print Wk_RowDell_S
Debug.Print Wk_RowDell_E
If Wk_RowDell_S + 3 < 55 Then
Sheets("work").Range(Wk_RowDell_S + 4 & ":" & Wk_RowDell_E - 2).Delete
End If
'文字の置き換え
Wk_LastRow = Sheets("work").Cells(Rows.Count, 1).End(xlUp).Row '最終行を取得
Set Wk_MyRange = Sheets("work").Range("A1:A" + Format(Wk_LastRow, "0"))
bool = Wk_MyRange.Replace("実施日(YYYYMMDD)", Wk_Jisshi_Bi, LookAt:=xlPart) '実施日(YYYYMMDD)
bool = Wk_MyRange.Replace("チケット番号", Wk_Ticket, LookAt:=xlPart) 'チケット番号
bool = Wk_MyRange.Replace("登録番号", Wk_Toroku_No, LookAt:=xlPart) '登録番号
bool = Wk_MyRange.Replace("登録日(YYYY/MM/DD)", Format(Wk_Toroku_Bi, "yyyy/mm/dd"), LookAt:=xlPart) '登録日(YYYY/MM/DD)
bool = Wk_MyRange.Replace("登録日(和暦)", Format(Wk_Toroku_Bi, "ggge年m月d日"), LookAt:=xlPart) '登録日(和暦)
bool = Wk_MyRange.Replace("姓姓", Wk_Sei, LookAt:=xlPart) '姓
bool = Wk_MyRange.Replace("名名", Wk_Na, LookAt:=xlPart) '名
bool = Wk_MyRange.Replace("氏名氏名", Wk_Name, LookAt:=xlPart) '氏名
End Sub
Sub Print_Proc() '外字対応手順.txt出力
If Wk_Ticket_Eda = "" Then
Open Wk_ThisBook.Path + "\" + Wk_Ticket + "_外字対応手順.txt" For Output As #2
Else
Open Wk_ThisBook.Path + "\" + Wk_Ticket + "-" + Wk_Ticket_Eda + "_外字対応手順.txt" For Output As #2
End If
For Wk_Cnt1 = 1 To Sheets("work").Cells(Rows.Count, 1).End(xlUp).Row
Print #2, Sheets("work").Cells(Wk_Cnt1, 1).Value
Next
Close #2
End Sub
Sub Mail_Clear()
Sheets("main").Range("F3:F52") = ""
End Sub
Sub OptionButton1()
Wk_OptionButton = "1"
End Sub
Sub OptionButton2()
Wk_OptionButton = "2"
End Sub
ダウンロード
アップロード