食っちゃ寝システムができるまで

「食っちゃ寝システム」ができるまでの、棚卸&備忘録です。

VBA使用頻度の高いコード(11):罫線を引き直す

f:id:taikobox:20181209173448p:plain

罫線を引き直す

罫線を引き直す用コード

票のセインを引き直すとき頻繁に使用
===============================

Sub 罫線を引き直す()

'罫線を引き直す

Range("A9:L9").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Borders.LineStyle = xlContinuous
End If

End Sub

===============================

VBA使用頻度の高いコード(10):フォルダ一括作成

f:id:taikobox:20181209173448p:plain

フォルダ一括作成

フォルダ内の特定ファイル読出し用コード

シート上の名称をもとに一括でフォルダ作るコードです
===============================

Sub フォルダ一括作成()

Dim Path As String '作成予定フォルダの上位パス
Path = ThisWorkbook.Path

Dim i As Long 'フォルダ数カウンタ

For i = 10 To Range("N10").End(xlDown).Row

Dim FolderName As String '作成するフォルダ名
FolderName = Cells(i, 任意の列番号).Value

Dim NewDirPath As String '作成予定のフォルダパス
NewDirPath = Path & "\" & FolderName

'作成予定フォルダと同名のフォルダの存在有無を確認し、存在しない場合フォルダ作成
If Dir(NewDirPath, vbDirectory) = "" Then
MkDir Path & "\" & FolderName
Else
End If

Next i

MsgBox "終了しました。"

End Sub

===============================

VBA使用頻度の高いコード(9):フォルダ内の特定ファイル読出し

f:id:taikobox:20181209173448p:plain

フォルダ内の特定ファイル読出し

フォルダ内の特定ファイル読出し用コード

これはjpg読み出しようです。
===============================

Sub フォルダ内Jpeg読込(pkupFolder As String)
Dim pkupPath As String
Dim pkupJpegFile
pkupPath = ""
pkupJpegFile = ""
pkupJpegFile = Dir(pkupFolder & "¥*.Jpg")
Do While pkupJpegFile <> ""
ckCurrentRow = ckCurrentRow + 1
Cells(ckCurrentRow, 2) = pkupFolder & "¥" & pkupJpegFile
pkupJpegFile = Dir()
Loop
End Sub

===============================

VBA使用頻度の高いコード(8):インターネットエクスプローラーの起動

f:id:taikobox:20181209173448p:plain

インターネットエクスプローラーの起動

インターネットエクスプローラーの起動用コード


===============================


Sub IEOpen(ByRef MapURL As String)
Dim objIE As Object
Dim waitTime As Variant

Target = MapURL
Set objIE = CreateObject("InternetExplorer.Application")
With objIE
.Top = 0 'Y位置(上下)
.Left = 900 'X位置(左右)
.Width = 800 'IEウィンドウの幅
.Height = 600
'InternetExplorerを表示
.Visible = True

'指定したURLのページを表示する
.navigate Target

'完全にページが表示されるまで待機する
Do While .Busy = True Or .readyState <> 4
DoEvents
Loop

'完全にドキュメントが読み込まれるまで待機する
Do While .document.readyState <> "complete"
DoEvents
Loop
End With


Set objIE = Nothing

End Sub

===============================

VBA使用頻度の高いコード(7):コマンドラインからアプリ読出し

f:id:taikobox:20181209173448p:plain

コマンドラインからアプリ読出し

コマンドラインからアプリ読出し用コード

ここコードは同じ、フォルダ内の「縮小専用」にファイルパスを渡しリサイズする例です。

流れとしては、

事前に貼付用CSVファイル作成

⇒元のシートからファイルパス取出し

⇒Shellオブジェクトにアプリのパスとファイルパス渡す

⇒完了


===============================

Sub 写真データリサイズ()
Dim SrcName As String, Res, i, FilePath, newFolder

newFolder = newFolder & " " & ThisWorkbook.Path & Range("J8") & Range("J" & i) & "\" & Range("k" & i) & ".jpg"

On Error Resume Next
'この例ではBookと同じフォルダにShukuSen.exeがあります。
Res = Shell(ThisWorkbook.Path & "\ShukuSen.exe" & newFolder, vbNormalFocus)
If Err.Number Then
MsgBox "error"
Exit Sub
End If
On Error GoTo 0

End Sub

===============================

VBA使用頻度の高いコード(6):エクセルシートのCSV出力

f:id:taikobox:20181209173448p:plain

エクセルシートのCSV出力

エクセルシートのCSV出力用コード

ここコードはリストから一部の列をTEMPシートに整理しなおして出力するように作っています。

流れとしては、

事前に貼付用CSVファイル作成

⇒元のシートから必要なデータ範囲(ここでは"B9:K2000")をコピー

⇒「TEMP」シートに内容貼付け

⇒「TEMP」の内容を事前に作成したCSVに貼付け

⇒完了


===============================

Sub CSV書出し()
Dim FileN, DateValue As String
Dim re As Integer

DateValue = Date
FileN = Application.GetSaveAsFilename(InitialFileName:="GoogleMap出力用_" & Range("C6") & "_" & Format(DateValue, "yyyymmddhhnn") & "_1" & ".csv", _
FileFilter:="CSV ファイル (*.csv), *.csv")


'既にある場合の上書き
If FileN <> "False" Then
If Dir(FileN) <> "" Then
re = MsgBox(FileN & String(2, vbLf) & _
"は、存在します。 上書きしますか?", vbYesNo)
'開いているかのチェック
On Error Resume Next
Open FileN For Append As #1
Close #1
If Err.Number > 0 Then
MsgBox "すでに開かれています、閉じてやり直してください"
Exit Sub
End If

If re = vbYes Then Kill FileN
Else
End If
Application.ScreenUpdating = False
Sheets("TEMP").Select
Cells.Select
Selection.Delete Shift:=xlUp
Range("A1").Select
Sheets("画像リスト").Select
'GoogleMyMap1レイヤ2000までなので1990レコードを上限にしています。それ以上は別ファイルで作業して下さい
Range("B9:K2000").Select
Selection.Copy
Sheets("TEMP").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveSheet.Copy
ActiveWorkbook.SaveAs FileName:=FileN, FileFormat:=xlCSV, Local:=True
ActiveWorkbook.Close SaveChanges:=False
MsgBox "CSVファイルで書き出しました。", vbInformation
End If
Sheets("画像リスト").Select
Application.ScreenUpdating = True
End Sub

===============================

VBA使用頻度の高いコード(5):エクセルシートのPDF出力

f:id:taikobox:20181209173448p:plain

エクセルシートのPDF出力

エクセルシートのPDF出力用コード


===============================

Sub PDF出力()
'
' PDF出力
'
Dim fPath, pPoint, BaseFilename, CurrentFile As String
'ファイル名
CurrentFile = ActiveWorkbook.Name
pPoint = InStrRev(CurrentFile, ".")
BaseFilename = Left(CurrentFile, pPoint - 1)
fPath = ThisWorkbook.Path & "\【一覧表】" & BaseFilename & Format(Now, "_yyyymmddhhnnss") & ".pdf"

'同名のファイルが存在するか確認
If Dir(fPath, vbNormal) <> "" Then
fPath = ThisWorkbook.Path & "\【一覧表】" & BaseFilename & Format(Now, "_yyyymmddhhnnss") & "_1.pdf"
MsgBox "同名のファイルが存在。別名で保存" & fPath

End If
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=fPath, Quality:=xlQualityMinimum, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
End Sub

===============================

VBA使用頻度の高いコード(4):エクセルファイル更新バックアップ

f:id:taikobox:20181209173448p:plain

エクセルファイル更新バックアップ

エクセルファイル更新バックアップ用コード


===============================

Sub データバックアップ更新()
'
Dim backupcheck As String
Dim CurrentPath, CurrentFile, ckBackup As String
Dim pPoint, BaseFilename, newFilename

' エラー時は強制終了
On Error GoTo ErrorProcess

ckBackup = MsgBox("更新バックアップします", vbOKCancel)
If (ckBackup = vbCancel) Then
Exit Sub
End If


' データ更新
ActiveWorkbook.RefreshAll

' 更新時上書き
ActiveWorkbook.Save
' バックアップ
If (ckBackup = vbOK) Then
CurrentPath = ThisWorkbook.Path
CurrentFile = ActiveWorkbook.Name
pPoint = InStrRev(CurrentFile, ".")
BaseFilename = Left(CurrentFile, pPoint - 1)
'ファイル名
newFilename = CurrentPath & "\" & BaseFilename & Format(Now, "_yyyymmddhhnnss") & ".xlsm"
MsgBox (BaseFilename & Format(Now, "_yyyymmddhhnnss") & ".xlsmにバックアップ")
Set objFso = CreateObject("Scripting.FilesystemObject")
objFso.Copyfile CurrentPath & "\" & CurrentFile, newFilename
Set objFso = Nothing
Else
MsgBox ("バックアップ無し")
End If

Exit Sub
ErrorProcess:
MsgBox ("エラー発生、終了します")

End Sub

===============================

VBA使用頻度の高いコード(3):エクセルシート上の写真カウント

f:id:taikobox:20181209173448p:plain

エクセルシート上の写真カウント

シート上の画像のカウント


===============================

Sub 写真カウント()

Dim ctPicture As Double

'写真数カウント
ctPicture = 0
ctPicture = ActiveSheet.Pictures.Count
If PageCount = 0 Then
Exit Sub
End If

End Sub

 

===============================

VBA使用頻度の高いコード(2):エクセル上の写真の縮小

f:id:taikobox:20181209173448p:plain

エクセル上の写真の縮小

エクセル上の写真を縮小するためのマクロ


===============================

Sub 写真縮小()
ActiveSheet.Unprotect


Dim shp As Shape
Dim x As Double
Dim y As Double

Application.ScreenUpdating = False



If MsgBox("画像データを圧縮しますか?", vbQuestion + vbOKCancel) = vbCancel Then
MsgBox "終了します。"
Exit Sub
End If
'実行継続

For Each shp In ActiveSheet.Shapes
'写真判定
If shp.Type = msoPicture Then
With shp
x = .Left
y = .Top
.Cut
End With

ActiveSheet.PasteSpecial Format:="図 (JPEG)"

With Selection
.Left = x
.Top = y
End With
End If
Next

ActiveSheet.Protect
End Sub

===============================

VBA使用頻度の高いコード(1):5行以上の結合セルに合わせて写真貼付け

 

f:id:taikobox:20181209173448p:plain

 

5行以上の結合セルに合わせて写真貼付け

結合セルに合わせて写真サイズ修正貼付け用のコードです

===============================

Sub 写真貼付直接()
'===============セル選択&セル選択エラー判定付(6行以上の結合セルのみ貼り付け)
Dim i As Long, MargeCHK, Celldata As String
Dim PicWidth, PicHeight
Dim Pict As String
Dim CurrentPath1 As String
Dim H_CHK, W_CHK As Double
Dim RotateDirection As Single
ActiveSheet.Unprotect

If TypeName(Selection) = "Range" Then
If Selection.MergeCells Then
If Selection.Rows.Count > 5 Then
'buf = "写真貼付します" & vbCrLf
Else
Exit Sub
End If
Else
Exit Sub
End If
Else
MsgBox "セルを選択してから実行してください。"
Exit Sub
End If

Celldata = Selection.Address

'===============画像選択

ChDir ActiveWorkbook.Path
myF = Application.GetOpenFilename _
("jpg bmp tif png,*.jpg;*.bmp;*.tif;*.png", , "画像の選択", , False)
If myF = False Then
MsgBox "画像を選択してください(終了)"
Exit Sub
End If


'===============画像表示サイズを75%へ
ActiveWindow.Zoom = 75

'===============セルサイズを計算

PicWidth = Selection.Width
PicHeight = Selection.Height

'===============画像の貼り付け

With ActiveSheet.Pictures.Insert(Filename:=myF)
.CopyPicture 'クリップボードにコピー
.Delete '画像をいったん削除
End With
ActiveSheet.Paste '画像を貼り付け
Selection.Name = "Pic" & Format(Now, "yyyymmddhhnnss")
Pict = Selection.Name

'===============セルサイズに合わせて変更+回転方向判定:90度回転の場合横に引き延ばす
RotateDirection = ActiveSheet.Shapes(Pict).Rotation

If RotateDirection = 0 Or RotateDirection = 180 Then
W_CHK = PicWidth
H_CHK = PicHeight
Else
W_CHK = PicHeight
H_CHK = PicWidth
End If

With ActiveSheet.Shapes(Pict)
.LockAspectRatio = msoFalse
.Placement = xlFreeFloating
.Placement = xlMove
.Top = Range(Celldata).Top
.Left = Range(Celldata).Left
.Width = W_CHK
.Height = H_CHK
End With

End Sub

===============================

「食っちゃ寝システム第一弾」(5):写真Exif編集アプリver500(3)

「食っちゃ寝システム第一弾」(5):中間報告

 

②写真のExif情報確認/編集

写真Exif編集アプリver500は読出した写真をExif情報確認/編集機能つけました

 

f:id:taikobox:20181209163344p:plain

 

1)プログラムの動作説明

f:id:taikobox:20181209163430p:plain

ここに関しては、練習用にWIAを使ってみました。

WIA=Windows Image Acquisition

直訳通り、ウィンドウズのイメージ取得用のオブジェクトで

歴史は意外に古くWindowsME(2000年から)ある機能です

Wia object - Windows applications | Microsoft Docs

Windows Image Acquisition - Wikipedia

niwakan.blogspot.com

 

 使う前の準備として、先にVBAエディタからツール⇒参照設定

Windows Image Acquisitionにチェック入れてください

f:id:taikobox:20181209164048p:plain

 

尚、Exif編集に関しては、今回は自分で作らず。フリーウェア「F6Exif」をコマンドラインで値渡し起動させることで一応対応しています。(縮小専用を外部操作するのと同じ手法です)そのため事前にF6Exif.exeを同一フォルダに格納しています
*コードとしては以下の部分で対応しています
 Res = Shell(ThisWorkbook.Path & "\F6Exif.exe" & ExifTarget, vbNormalFocus)

Exif確認編集部のコード>

===========================================

 

 


Private Sub Exif_Com1_Click()
Dim MapURL As String
MapURL = "https://www.google.co.jp/maps/@" & ExifModify.Exif_info3 & "," & ExifModify.Exif_info4 & ",72m/data=!3m1!1e3"
Call IEOpen(MapURL)
End Sub

Private Sub Exif_Com2_Click()
Dim ckExifEdit, ckExif_Camera, ckExif_Date, ckExif_Lat, ckExif_Lon, ckExif_Rotate
Dim overwriteExif

'Exif情報 変更ある場合は変更後⇒exif情報読込
ckExifEdit = ExifModify.Exif_edit1.Value & ExifModify.Exif_edit2.Value & ExifModify.Exif_edit3.Value & ExifModify.Exif_edit4.Value & ExifModify.Exif_edit5.Value
If (ckExifEdit = "") Then
'そのままexif情報読込
Else
'Exiftool通じて上書き
If (ExifModify.Exif_edit2.Value <> "") Then
Exiftooldate = " " & "-overwrite_original -MediaCreateDate='" & Exif_info2 & "' " & "-MediaModifyDate='" & ExifModify.Exif_edit2.Value & "' " & ExifModify.Exif_Path
End If


On Error Resume Next
MsgBox Exiftooldate
overwriteExif = Shell(ThisWorkbook.Path & "\exiftool.exe" & Exiftooldate, vbNormalFocus)
MsgBox overwriteExif
If Err.Number Then
MsgBox "Exiftool使えない環境です。別途Exif読取君開いてください。(変更内容に制限あります)"
Exit Sub
End If
On Error GoTo 0

End If

Call GetExifinfo

End Sub

Private Sub Exif_Com3_Click()
Unload ExifModify
End Sub

Private Sub Exif_Import_Click()
If (ExifModify.Exif_Path = "") Then

End If

ExifModify.Exif_Image.Picture = LoadPicture(FilePath)
End Sub

Private Sub Exif_Path_Click()
Dim LoadFile As String
Dim GetFilePath As String
LoadFile = MsgBox("新規ファイル読込みます", vbYesNo)
If (LoadFile = vbNo) Then
Exit Sub
Else
ChDir ActiveWorkbook.Path
GetFilePath = Application.GetOpenFilename _
("jpg画像,*.jpg;*.jpeg", , "画像の選択", , False)
End If
ExifModify.Exif_Path = GetFilePath
ExifModify.Exif_Image.Picture = LoadPicture(GetFilePath)
Call GetExifinfo
End Sub
Sub GetExifinfo()
Dim ObjWIA As Object '情報読込にはWIAライブラリを使用する
'初期化
ExifModify.Exif_info1 = ""
ExifModify.Exif_info2 = ""
ExifModify.Exif_info3 = ""
ExifModify.Exif_info4 = ""
ExifModify.Exif_info5 = ""

If (ExifModify.Exif_Path = "") Then
Exit Sub
End If
If (Dir(ExifModify.Exif_Path, vbDirectory) = "") Then
MsgBox "ファイルがありません"
Exit Sub
End If

Set ObjWIA = CreateObject("Wia.ImageFile")
ObjWIA.LoadFile ExifModify.Exif_Path

On Error Resume Next
For Each p In ObjWIA.Properties
i = i + 1
V_ID = p.PropertyID

If p.PropertyID = 2 Then
ExifModify.Exif_info3 = p.Value(1) + p.Value(2) / 60 + p.Value(3) / 3600 'ID=2=緯度
ElseIf p.PropertyID = 4 Then
ExifModify.Exif_info4 = p.Value(1) + p.Value(2) / 60 + p.Value(3) / 3600 'ID=4=経度
ElseIf p.PropertyID = 272 Then
ExifModify.Exif_info1 = p.Value 'ID=272=カメラ型番
ElseIf p.PropertyID = 274 Then
ExifModify.Exif_info5 = p.Value 'ID=274=回転方向
ElseIf p.PropertyID = 36867 Then
ExifModify.Exif_info2 = p.Value 'ID=36867=撮影時間
End If

Next
On Error GoTo 0

Set ObjWIA = Nothing
End Sub

Private Sub OpenApp_Click()
Dim ExifTarget


On Error Resume Next
'この例ではBookと同じフォルダにShukuSen.exeがあります。
ExifTarget = " " & ExifModify.Exif_Path.Caption

Res = Shell(ThisWorkbook.Path & "\F6Exif.exe" & ExifTarget, vbNormalFocus)
If Err.Number Then
MsgBox "error"
Exit Sub
End If
On Error GoTo 0
End Sub

Private Sub UserForm_Initialize()
With ExifModify.Exif_edit5
.AddItem "1"
.AddItem "2"
.AddItem "3"
.AddItem "4"
.AddItem "5"
.AddItem "6"
.AddItem "7"
.AddItem "8"
.Value = ""
End With
Call Exif_Com2_Click

End Sub

 ====================================================

 

 ⇒写真Exif編集アプリver500(4)

「食っちゃ寝システム第一弾」(4):写真Exif編集アプリver500(2)

「食っちゃ寝システム第一弾」(4):中間報告

②自動分別した写真の確認

写真Exif編集アプリver500は読出した写真を実際開いて確認する機能も追加しました。

 

f:id:taikobox:20181209162737p:plain

 

1)プログラムの動作説明

f:id:taikobox:20181209162426p:plain

これに関して、特別な工夫はなくフォーム上にイメージを12個起き、12個ずつ表示切り替え確認出来るようにしたものです。これに関して新しく学んだことはないのですが。もっと軽く動作できるようにしていくこと思案中です。

 

 

<写真確認部のコード>

 

===========================================

 

 


Private Sub ckPhotoPath_1_Click()
Dim ckReuse, oldName, newName As String
oldName = ""
newName = ""
ckReuse = MsgBox("元のファイル名利用しますか?", vbYesNoCancel)
oldName = Replace(ckFolder.ckPhotoPath_1, ".jpg", "")

If (ckReuse = vbCancel) Then
ElseIf (ckReuse = vbYes) Then
MsgBox "元ファイル名" & oldName & "_をコピーします"
newName = oldName & "_.jpg"
Else
If (ckFolder.CoWordReName_2.Value = True) Then
newName = ckFolder.CoWordReName_1 & ckFolder.CoWordReName_3 & ".jpg"
ckFolder.CoWordReName_3 = ckFolder.CoWordReName_3 + 1
Else
newName = ckFolder.CoWordReName_1 & ".jpg"
End If
End If
ckFolder.Rename_1 = newName

End Sub

Private Sub ckPhotoPath_2_Click()
Dim ckReuse, oldName, newName As String
oldName = ""
newName = ""
ckReuse = MsgBox("元のファイル名利用しますか?", vbYesNoCancel)
oldName = Replace(ckFolder.ckPhotoPath_2, ".jpg", "")

If (ckReuse = vbCancel) Then
ElseIf (ckReuse = vbYes) Then
MsgBox "元ファイル名" & oldName & "_をコピーします"
newName = oldName & "_.jpg"
Else
If (ckFolder.CoWordReName_2.Value = True) Then
newName = ckFolder.CoWordReName_1 & ckFolder.CoWordReName_3 & ".jpg"
ckFolder.CoWordReName_3 = ckFolder.CoWordReName_3 + 1
Else
newName = ckFolder.CoWordReName_1 & ".jpg"
End If
End If
ckFolder.Rename_2 = newName
End Sub

Private Sub ckPhotoPath_3_Click()
Dim ckReuse, oldName, newName As String
oldName = ""
newName = ""
ckReuse = MsgBox("元のファイル名利用しますか?", vbYesNoCancel)
oldName = Replace(ckFolder.ckPhotoPath_3, ".jpg", "")

If (ckReuse = vbCancel) Then
ElseIf (ckReuse = vbYes) Then
MsgBox "元ファイル名" & oldName & "_をコピーします"
newName = oldName & "_.jpg"
Else
If (ckFolder.CoWordReName_2.Value = True) Then
newName = ckFolder.CoWordReName_1 & ckFolder.CoWordReName_3 & ".jpg"
ckFolder.CoWordReName_3 = ckFolder.CoWordReName_3 + 1
Else
newName = ckFolder.CoWordReName_1 & ".jpg"
End If
End If
ckFolder.Rename_3 = newName
End Sub

Private Sub ckPhotoPath_4_Click()
Dim ckReuse, oldName, newName As String
oldName = ""
newName = ""
ckReuse = MsgBox("元のファイル名利用しますか?", vbYesNoCancel)
oldName = Replace(ckFolder.ckPhotoPath_4, ".jpg", "")

If (ckReuse = vbCancel) Then
ElseIf (ckReuse = vbYes) Then
MsgBox "元ファイル名" & oldName & "_をコピーします"
newName = oldName & "_.jpg"
Else
If (ckFolder.CoWordReName_2.Value = True) Then
newName = ckFolder.CoWordReName_1 & ckFolder.CoWordReName_3 & ".jpg"
ckFolder.CoWordReName_3 = ckFolder.CoWordReName_3 + 1
Else
newName = ckFolder.CoWordReName_1 & ".jpg"
End If
End If
ckFolder.Rename_4 = newName
End Sub

Private Sub ckPhotoPath_5_Click()
Dim ckReuse, oldName, newName As String
oldName = ""
newName = ""
ckReuse = MsgBox("元のファイル名利用しますか?", vbYesNoCancel)
oldName = Replace(ckFolder.ckPhotoPath_5, ".jpg", "")

If (ckReuse = vbCancel) Then
ElseIf (ckReuse = vbYes) Then
MsgBox "元ファイル名" & oldName & "_をコピーします"
newName = oldName & "_.jpg"
Else
If (ckFolder.CoWordReName_2.Value = True) Then
newName = ckFolder.CoWordReName_1 & ckFolder.CoWordReName_3 & ".jpg"
ckFolder.CoWordReName_3 = ckFolder.CoWordReName_3 + 1
Else
newName = ckFolder.CoWordReName_1 & ".jpg"
End If
End If
ckFolder.Rename_5 = newName
End Sub

Private Sub ckPhotoPath_6_Click()
Dim ckReuse, oldName, newName As String
oldName = ""
newName = ""
ckReuse = MsgBox("元のファイル名利用しますか?", vbYesNoCancel)
oldName = Replace(ckFolder.ckPhotoPath_6, ".jpg", "")

If (ckReuse = vbCancel) Then
ElseIf (ckReuse = vbYes) Then
MsgBox "元ファイル名" & oldName & "_をコピーします"
newName = oldName & "_.jpg"
Else
If (ckFolder.CoWordReName_2.Value = True) Then
newName = ckFolder.CoWordReName_1 & ckFolder.CoWordReName_3 & ".jpg"
ckFolder.CoWordReName_3 = ckFolder.CoWordReName_3 + 1
Else
newName = ckFolder.CoWordReName_1 & ".jpg"
End If
End If
ckFolder.Rename_6 = newName
End Sub

Private Sub ckPhotoPath_7_Click()
Dim ckReuse, oldName, newName As String
oldName = ""
newName = ""
ckReuse = MsgBox("元のファイル名利用しますか?", vbYesNoCancel)
oldName = Replace(ckFolder.ckPhotoPath_7, ".jpg", "")

If (ckReuse = vbCancel) Then
ElseIf (ckReuse = vbYes) Then
MsgBox "元ファイル名" & oldName & "_をコピーします"
newName = oldName & "_.jpg"
Else
If (ckFolder.CoWordReName_2.Value = True) Then
newName = ckFolder.CoWordReName_1 & ckFolder.CoWordReName_3 & ".jpg"
ckFolder.CoWordReName_3 = ckFolder.CoWordReName_3 + 1
Else
newName = ckFolder.CoWordReName_1 & ".jpg"
End If
End If
ckFolder.Rename_7 = newName
End Sub

Private Sub ckPhotoPath_8_Click()
Dim ckReuse, oldName, newName As String
oldName = ""
newName = ""
ckReuse = MsgBox("元のファイル名利用しますか?", vbYesNoCancel)
oldName = Replace(ckFolder.ckPhotoPath_8, ".jpg", "")

If (ckReuse = vbCancel) Then
ElseIf (ckReuse = vbYes) Then
MsgBox "元ファイル名" & oldName & "_をコピーします"
newName = oldName & "_.jpg"
Else
If (ckFolder.CoWordReName_2.Value = True) Then
newName = ckFolder.CoWordReName_1 & ckFolder.CoWordReName_3 & ".jpg"
ckFolder.CoWordReName_3 = ckFolder.CoWordReName_3 + 1
Else
newName = ckFolder.CoWordReName_1 & ".jpg"
End If
End If
ckFolder.Rename_8 = newName
End Sub

Private Sub ckPhotoPath_9_Click()
Dim ckReuse, oldName, newName As String
oldName = ""
newName = ""
ckReuse = MsgBox("元のファイル名利用しますか?", vbYesNoCancel)
oldName = Replace(ckFolder.ckPhotoPath_9, ".jpg", "")

If (ckReuse = vbCancel) Then
ElseIf (ckReuse = vbYes) Then
MsgBox "元ファイル名" & oldName & "_をコピーします"
newName = oldName & "_.jpg"
Else
If (ckFolder.CoWordReName_2.Value = True) Then
newName = ckFolder.CoWordReName_1 & ckFolder.CoWordReName_3 & ".jpg"
ckFolder.CoWordReName_3 = ckFolder.CoWordReName_3 + 1
Else
newName = ckFolder.CoWordReName_1 & ".jpg"
End If
End If
ckFolder.Rename_9 = newName
End Sub

Private Sub ckPhotoPath_10_Click()
Dim ckReuse, oldName As String
oldName = ""
ckReuse = MsgBox("元のファイル名利用しますか?", vbYesNoCancel)
oldName = Replace(ckFolder.ckPhotoPath_10, ".jpg", "")
If (ckReuse = vbCancel) Then
ElseIf (ckReuse = vbYes) Then
MsgBox "元ファイル名" & oldName & "_をコピーします"
ckFolder.Rename_1 = oldName & "_.jpg"
Else
If (ckFolder.CoWordReName_2.Value = True) Then
ckFolder.Rename_1 = ckFolder.CoWordReName_1 & ckFolder.CoWordReName_3 & ".jpg"
ckFolder.CoWordReName_3 = ckFolder.CoWordReName_3 + 1
Else
ckFolder.Rename_10 = ckFolder.CoWordReName_1 & ".jpg"
End If
End If
End Sub

Private Sub ckPhotoPath_11_Click()
Dim ckReuse, oldName, newName As String
oldName = ""
newName = ""
ckReuse = MsgBox("元のファイル名利用しますか?", vbYesNoCancel)
oldName = Replace(ckFolder.ckPhotoPath_11, ".jpg", "")

If (ckReuse = vbCancel) Then
ElseIf (ckReuse = vbYes) Then
MsgBox "元ファイル名" & oldName & "_をコピーします"
newName = oldName & "_.jpg"
Else
If (ckFolder.CoWordReName_2.Value = True) Then
newName = ckFolder.CoWordReName_1 & ckFolder.CoWordReName_3 & ".jpg"
ckFolder.CoWordReName_3 = ckFolder.CoWordReName_3 + 1
Else
newName = ckFolder.CoWordReName_1 & ".jpg"
End If
End If
ckFolder.Rename_11 = newName
End Sub

Private Sub ckPhotoPath_12_Click()
Dim ckReuse, oldName, newName As String
oldName = ""
newName = ""
ckReuse = MsgBox("元のファイル名利用しますか?", vbYesNoCancel)
oldName = Replace(ckFolder.ckPhotoPath_12, ".jpg", "")

If (ckReuse = vbCancel) Then
ElseIf (ckReuse = vbYes) Then
MsgBox "元ファイル名" & oldName & "_をコピーします"
newName = oldName & "_.jpg"
Else
If (ckFolder.CoWordReName_2.Value = True) Then
newName = ckFolder.CoWordReName_1 & ckFolder.CoWordReName_3 & ".jpg"
ckFolder.CoWordReName_3 = ckFolder.CoWordReName_3 + 1
Else
newName = ckFolder.CoWordReName_1 & ".jpg"
End If
End If
ckFolder.Rename_12 = newName
End Sub

Private Sub CloseButton_Click()
Unload ckFolder
End Sub

Private Sub Folder1_Click()
Dim LoadFile As String
Dim GetFilePath As String
LoadFile = MsgBox("新規ファイル読込みます", vbOKCancel)
If (LoadFile = vbNo) Then
Exit Sub
Else
ChDir ActiveWorkbook.Path
GetFilePath = Application.GetOpenFilename _
("jpg画像,*.jpg;*.jpeg", , "画像の選択", , False)
End If
ExifModify.Exif_Path = GetFilePath
ExifModify.Exif_Image.Picture = LoadPicture(GetFilePath)
End Sub

 

Private Sub cmShowPhoto_Click()
Dim LoadPhotos As String

LoadPhotos = MsgBox("写真読込表示します", vbYesNoCancel)


'読み込みデータの初期化
ckFolder.ckPhotoPath_1 = ""
ckFolder.ckPhotoPath_2 = ""
ckFolder.ckPhotoPath_3 = ""
ckFolder.ckPhotoPath_4 = ""
ckFolder.ckPhotoPath_5 = ""
ckFolder.ckPhotoPath_6 = ""
ckFolder.ckPhotoPath_7 = ""
ckFolder.ckPhotoPath_8 = ""
ckFolder.ckPhotoPath_9 = ""
ckFolder.ckPhotoPath_10 = ""
ckFolder.ckPhotoPath_11 = ""
ckFolder.ckPhotoPath_12 = ""

ckFolder.Rename_1 = ""
ckFolder.Rename_2 = ""
ckFolder.Rename_3 = ""
ckFolder.Rename_4 = ""
ckFolder.Rename_5 = ""
ckFolder.Rename_6 = ""
ckFolder.Rename_7 = ""
ckFolder.Rename_8 = ""
ckFolder.Rename_9 = ""
ckFolder.Rename_10 = ""
ckFolder.Rename_11 = ""
ckFolder.Rename_12 = ""

ckFolder.ckPhotoImage_1.Picture = LoadPicture("")
ckFolder.ckPhotoImage_2.Picture = LoadPicture("")
ckFolder.ckPhotoImage_3.Picture = LoadPicture("")
ckFolder.ckPhotoImage_4.Picture = LoadPicture("")
ckFolder.ckPhotoImage_5.Picture = LoadPicture("")
ckFolder.ckPhotoImage_6.Picture = LoadPicture("")
ckFolder.ckPhotoImage_7.Picture = LoadPicture("")
ckFolder.ckPhotoImage_8.Picture = LoadPicture("")
ckFolder.ckPhotoImage_9.Picture = LoadPicture("")
ckFolder.ckPhotoImage_10.Picture = LoadPicture("")
ckFolder.ckPhotoImage_11.Picture = LoadPicture("")
ckFolder.ckPhotoImage_12.Picture = LoadPicture("")

ckFolder.ckConfirm_1 = False
ckFolder.ckConfirm_2 = False
ckFolder.ckConfirm_3 = False
ckFolder.ckConfirm_4 = False
ckFolder.ckConfirm_5 = False
ckFolder.ckConfirm_6 = False
ckFolder.ckConfirm_7 = False
ckFolder.ckConfirm_8 = False
ckFolder.ckConfirm_9 = False
ckFolder.ckConfirm_10 = False
ckFolder.ckConfirm_11 = False
ckFolder.ckConfirm_12 = False



End Sub


Private Sub Folder_1_Click()


Dim LoadFile As String
Dim GetFilePath As String
Dim pkupFolder
LoadFile = MsgBox("新規フォルダ読込みます", vbOKCancel)
If (LoadFile = vbNo) Then
Exit Sub
Else
ckFolder.FileList.Clear
ChDir ActiveWorkbook.Path
'フォルダ名取込み
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show = True Then
pkupFolder = .SelectedItems(1)
End If
End With
End If
ckFolder.Folder_1 = pkupFolder
If Dir(ckFolder.Folder_1, vbDirectory) = "" Then
MsgBox "フォルダがありません"
ckFolder.Folder_1 = ""
ElseIf Dir(ckFolder.Folder_1 & "\*.Jpg", vbDirectory) = "" Then
MsgBox "ファイルがありません"
ckFolder.Folder_1 = ""
Else
With ckFolder.FileList
pkupJpegFile = Dir(ckFolder.Folder_1 & "\*.Jpg")
Do While pkupJpegFile <> ""
ctFile = ctFile + 1
.AddItem pkupJpegFile
pkupJpegFile = Dir()
Loop
End With


ckFolder.ctFile_1 = ""
ckFolder.ctFile_2 = ""
ckFolder.ctFile_3 = ctFile
End If
'読み込みデータの初期化
ckFolder.ckPhotoPath_1 = ""
ckFolder.ckPhotoPath_2 = ""
ckFolder.ckPhotoPath_3 = ""
ckFolder.ckPhotoPath_4 = ""
ckFolder.ckPhotoPath_5 = ""
ckFolder.ckPhotoPath_6 = ""
ckFolder.ckPhotoPath_7 = ""
ckFolder.ckPhotoPath_8 = ""
ckFolder.ckPhotoPath_9 = ""
ckFolder.ckPhotoPath_10 = ""
ckFolder.ckPhotoPath_11 = ""
ckFolder.ckPhotoPath_12 = ""

ckFolder.Rename_1 = ""
ckFolder.Rename_2 = ""
ckFolder.Rename_3 = ""
ckFolder.Rename_4 = ""
ckFolder.Rename_5 = ""
ckFolder.Rename_6 = ""
ckFolder.Rename_7 = ""
ckFolder.Rename_8 = ""
ckFolder.Rename_9 = ""
ckFolder.Rename_10 = ""
ckFolder.Rename_11 = ""
ckFolder.Rename_12 = ""

ckFolder.ckPhotoImage_1.Picture = LoadPicture("")
ckFolder.ckPhotoImage_2.Picture = LoadPicture("")
ckFolder.ckPhotoImage_3.Picture = LoadPicture("")
ckFolder.ckPhotoImage_4.Picture = LoadPicture("")
ckFolder.ckPhotoImage_5.Picture = LoadPicture("")
ckFolder.ckPhotoImage_6.Picture = LoadPicture("")
ckFolder.ckPhotoImage_7.Picture = LoadPicture("")
ckFolder.ckPhotoImage_8.Picture = LoadPicture("")
ckFolder.ckPhotoImage_9.Picture = LoadPicture("")
ckFolder.ckPhotoImage_10.Picture = LoadPicture("")
ckFolder.ckPhotoImage_11.Picture = LoadPicture("")
ckFolder.ckPhotoImage_12.Picture = LoadPicture("")

ckFolder.ckConfirm_1 = False
ckFolder.ckConfirm_2 = False
ckFolder.ckConfirm_3 = False
ckFolder.ckConfirm_4 = False
ckFolder.ckConfirm_5 = False
ckFolder.ckConfirm_6 = False
ckFolder.ckConfirm_7 = False
ckFolder.ckConfirm_8 = False
ckFolder.ckConfirm_9 = False
ckFolder.ckConfirm_10 = False
ckFolder.ckConfirm_11 = False
ckFolder.ckConfirm_12 = False


End Sub

Private Sub GotoBack_Click()

On Error GoTo Skip
'読み込みデータの初期化
ckFolder.ckPhotoPath_1 = ""
ckFolder.ckPhotoPath_2 = ""
ckFolder.ckPhotoPath_3 = ""
ckFolder.ckPhotoPath_4 = ""
ckFolder.ckPhotoPath_5 = ""
ckFolder.ckPhotoPath_6 = ""
ckFolder.ckPhotoPath_7 = ""
ckFolder.ckPhotoPath_8 = ""
ckFolder.ckPhotoPath_9 = ""
ckFolder.ckPhotoPath_10 = ""
ckFolder.ckPhotoPath_11 = ""
ckFolder.ckPhotoPath_12 = ""

ckFolder.Rename_1 = ""
ckFolder.Rename_2 = ""
ckFolder.Rename_3 = ""
ckFolder.Rename_4 = ""
ckFolder.Rename_5 = ""
ckFolder.Rename_6 = ""
ckFolder.Rename_7 = ""
ckFolder.Rename_8 = ""
ckFolder.Rename_9 = ""
ckFolder.Rename_10 = ""
ckFolder.Rename_11 = ""
ckFolder.Rename_12 = ""

ckFolder.ckPhotoImage_1.Picture = LoadPicture("")
ckFolder.ckPhotoImage_2.Picture = LoadPicture("")
ckFolder.ckPhotoImage_3.Picture = LoadPicture("")
ckFolder.ckPhotoImage_4.Picture = LoadPicture("")
ckFolder.ckPhotoImage_5.Picture = LoadPicture("")
ckFolder.ckPhotoImage_6.Picture = LoadPicture("")
ckFolder.ckPhotoImage_7.Picture = LoadPicture("")
ckFolder.ckPhotoImage_8.Picture = LoadPicture("")
ckFolder.ckPhotoImage_9.Picture = LoadPicture("")
ckFolder.ckPhotoImage_10.Picture = LoadPicture("")
ckFolder.ckPhotoImage_11.Picture = LoadPicture("")
ckFolder.ckPhotoImage_12.Picture = LoadPicture("")

ckFolder.ckConfirm_1 = False
ckFolder.ckConfirm_2 = False
ckFolder.ckConfirm_3 = False
ckFolder.ckConfirm_4 = False
ckFolder.ckConfirm_5 = False
ckFolder.ckConfirm_6 = False
ckFolder.ckConfirm_7 = False
ckFolder.ckConfirm_8 = False
ckFolder.ckConfirm_9 = False
ckFolder.ckConfirm_10 = False
ckFolder.ckConfirm_11 = False
ckFolder.ckConfirm_12 = False

If (ckFolder.ctFile_1 = "") Then
ckFolder.ctFile_1 = 1
If (ckFolder.ctFile_3 > 12) Then
ckFolder.ctFile_2 = 12
Else
ckFolder.ctFile_2 = ckFolder.ctFile_3
End If
ElseIf (ckFolder.ctFile_1 - 12 < 1 And ckFolder.ctFile_2 = ckFolder.ctFile_3) Then
MsgBox "フォルダ内ファイル数は" & ckFolder.ctFile_3 & "です"
ElseIf (ckFolder.ctFile_1 - 12 > 1 And ckFolder.ctFile_2 = ckFolder.ctFile_3) Then
ckFolder.ctFile_1 = ckFolder.ctFile_1 - 12
ckFolder.ctFile_2 = ckFolder.ctFile_1 + 11
ElseIf (ckFolder.ctFile_1 - 12 > 1 And ckFolder.ctFile_2 = ckFolder.ctFile_1 + 11) Then
ckFolder.ctFile_1 = ckFolder.ctFile_1 - 12
ckFolder.ctFile_2 = ckFolder.ctFile_2 - 12
ElseIf (ckFolder.ctFile_1 - 12 = 1 And ckFolder.ctFile_2 = ckFolder.ctFile_1 + 11) Then
ckFolder.ctFile_1 = ckFolder.ctFile_1 - 12
ckFolder.ctFile_2 = ckFolder.ctFile_2 - 12
ElseIf (ckFolder.ctFile_1 - 12 = 1 And ckFolder.ctFile_2 = ckFolder.ctFile_3) Then
ckFolder.ctFile_1 = ckFolder.ctFile_1 - 12
ckFolder.ctFile_2 = ckFolder.ctFile_1 + 11
End If

On Error Resume Next
j = 0
For i = ckFolder.ctFile_1 - 1 To ckFolder.ctFile_2 - 1
j = j + 1
fPath = Folder_1 & "\" & ckFolder.FileList.List(i)
Me.Controls("ckPhotoPath_" & j) = ckFolder.FileList.List(i)
Me.Controls("ckPhotoImage_" & j).Picture = LoadPicture(fPath)
Next i

'リストボックス内検索
If ckFolder.ckPhotoPath_1.Caption = "" Then Exit Sub
For i = 0 To FileList.ListCount - 1
If ckFolder.FileList.List(i) = ckFolder.ckPhotoPath_1.Caption Then
ckFolder.FileList.ListIndex = i
Exit For
End If
Next i

 

Exit Sub
Skip:


End Sub

Private Sub GotoNext_Click()
Dim i, j, fPath

On Error GoTo Skip
ckFolder.ckPhotoPath_1 = ""
ckFolder.ckPhotoPath_2 = ""
ckFolder.ckPhotoPath_3 = ""
ckFolder.ckPhotoPath_4 = ""
ckFolder.ckPhotoPath_5 = ""
ckFolder.ckPhotoPath_6 = ""
ckFolder.ckPhotoPath_7 = ""
ckFolder.ckPhotoPath_8 = ""
ckFolder.ckPhotoPath_9 = ""
ckFolder.ckPhotoPath_10 = ""
ckFolder.ckPhotoPath_11 = ""
ckFolder.ckPhotoPath_12 = ""

ckFolder.Rename_1 = ""
ckFolder.Rename_2 = ""
ckFolder.Rename_3 = ""
ckFolder.Rename_4 = ""
ckFolder.Rename_5 = ""
ckFolder.Rename_6 = ""
ckFolder.Rename_7 = ""
ckFolder.Rename_8 = ""
ckFolder.Rename_9 = ""
ckFolder.Rename_10 = ""
ckFolder.Rename_11 = ""
ckFolder.Rename_12 = ""

ckFolder.ckPhotoImage_1.Picture = LoadPicture("")
ckFolder.ckPhotoImage_2.Picture = LoadPicture("")
ckFolder.ckPhotoImage_3.Picture = LoadPicture("")
ckFolder.ckPhotoImage_4.Picture = LoadPicture("")
ckFolder.ckPhotoImage_5.Picture = LoadPicture("")
ckFolder.ckPhotoImage_6.Picture = LoadPicture("")
ckFolder.ckPhotoImage_7.Picture = LoadPicture("")
ckFolder.ckPhotoImage_8.Picture = LoadPicture("")
ckFolder.ckPhotoImage_9.Picture = LoadPicture("")
ckFolder.ckPhotoImage_10.Picture = LoadPicture("")
ckFolder.ckPhotoImage_11.Picture = LoadPicture("")
ckFolder.ckPhotoImage_12.Picture = LoadPicture("")

ckFolder.ckConfirm_1 = False
ckFolder.ckConfirm_2 = False
ckFolder.ckConfirm_3 = False
ckFolder.ckConfirm_4 = False
ckFolder.ckConfirm_5 = False
ckFolder.ckConfirm_6 = False
ckFolder.ckConfirm_7 = False
ckFolder.ckConfirm_8 = False
ckFolder.ckConfirm_9 = False
ckFolder.ckConfirm_10 = False
ckFolder.ckConfirm_11 = False
ckFolder.ckConfirm_12 = False
If (ckFolder.ctFile_1 = "") Then
ckFolder.ctFile_1 = 1
If (ckFolder.ctFile_3 = "") Then
Exit Sub
ElseIf (ckFolder.ctFile_3 > 12) Then
ckFolder.ctFile_2 = 12
Else
ckFolder.ctFile_2 = ckFolder.ctFile_3
End If
ElseIf (ckFolder.ctFile_2 = "" And ckFolder.ctFile_3 = "") Then
MsgBox "フォルダ内ファイル数は0です"
ElseIf (ckFolder.ctFile_2 = ckFolder.ctFile_3) Then
MsgBox "フォルダ内ファイル数は" & ckFolder.ctFile_3 & "です"
ElseIf (ckFolder.ctFile_1 >= 1 And ckFolder.ctFile_2 + 12 < ckFolder.ctFile_3) Then
ckFolder.ctFile_1 = ckFolder.ctFile_1 + 12
ckFolder.ctFile_2 = ckFolder.ctFile_2 + 12
ElseIf (ckFolder.ctFile_1 >= 1 And ckFolder.ctFile_2 + 12 > ckFolder.ctFile_3) Then
ckFolder.ctFile_1 = ckFolder.ctFile_1 + 12
ckFolder.ctFile_2 = ckFolder.ctFile_3
End If

j = 0
For i = ckFolder.ctFile_1 - 1 To ckFolder.ctFile_2 - 1
j = j + 1
fPath = Folder_1 & "\" & ckFolder.FileList.List(i)
Me.Controls("ckPhotoPath_" & j) = ckFolder.FileList.List(i)
Me.Controls("ckPhotoImage_" & j).Picture = LoadPicture(fPath)

Next i

'リストボックス内検索
If ckFolder.ckPhotoPath_1.Caption = "" Then Exit Sub
For i = 0 To FileList.ListCount - 1
If ckFolder.FileList.List(i) = ckFolder.ckPhotoPath_1.Caption Then
ckFolder.FileList.ListIndex = i
Exit For
End If
Next i

 

Exit Sub
Skip:


End Sub


Private Sub GotoExif_1_Click()
If (ckFolder.ckPhotoPath_1 = "") Then
Exit Sub
End If


FilePath = ckFolder.Folder_1 & "\" & ckFolder.ckPhotoPath_1
If Dir(FilePath, vbDirectory) = "" Then
MsgBox "ファイルがありません"
Exit Sub
Else
ExifModify.Exif_Path = FilePath
ExifModify.Exif_Image.Picture = LoadPicture(FilePath)

ExifModify.Exif_info1 = ""
ExifModify.Exif_info2 = ""
ExifModify.Exif_info3 = ""
ExifModify.Exif_info4 = ""
ExifModify.Exif_info5 = ""

If (ExifModify.Exif_Path = "") Then
Exit Sub
End If
If (Dir(ExifModify.Exif_Path, vbDirectory) = "") Then
MsgBox "ファイルがありません"
Exit Sub
End If

Set ObjWIA = CreateObject("Wia.ImageFile")
ObjWIA.LoadFile ExifModify.Exif_Path

On Error Resume Next
For Each p In ObjWIA.Properties
i = i + 1
V_ID = p.PropertyID

If p.PropertyID = 2 Then
ExifModify.Exif_info3 = p.Value(1) + p.Value(2) / 60 + p.Value(3) / 3600 'ID=2=緯度
ElseIf p.PropertyID = 4 Then
ExifModify.Exif_info4 = p.Value(1) + p.Value(2) / 60 + p.Value(3) / 3600 'ID=4=経度
ElseIf p.PropertyID = 272 Then
ExifModify.Exif_info1 = p.Value 'ID=272=カメラ型番
ElseIf p.PropertyID = 274 Then
ExifModify.Exif_info5 = p.Value 'ID=274=回転方向
ElseIf p.PropertyID = 36867 Then
ExifModify.Exif_info2 = p.Value 'ID=36867=撮影時間
End If

Next
On Error GoTo 0

Set ObjWIA = Nothing

ExifModify.Show
End If
End Sub

Private Sub GotoExif_2_Click()
If (ckFolder.ckPhotoPath_1 = "") Then
Exit Sub
End If


FilePath = ckFolder.Folder_1 & "\" & ckFolder.ckPhotoPath_2
If Dir(FilePath, vbDirectory) = "" Then
MsgBox "ファイルがありません"
Exit Sub
Else
ExifModify.Exif_Path = FilePath
ExifModify.Exif_Image.Picture = LoadPicture(FilePath)

ExifModify.Exif_info1 = ""
ExifModify.Exif_info2 = ""
ExifModify.Exif_info3 = ""
ExifModify.Exif_info4 = ""
ExifModify.Exif_info5 = ""

If (ExifModify.Exif_Path = "") Then
Exit Sub
End If
If (Dir(ExifModify.Exif_Path, vbDirectory) = "") Then
MsgBox "ファイルがありません"
Exit Sub
End If

Set ObjWIA = CreateObject("Wia.ImageFile")
ObjWIA.LoadFile ExifModify.Exif_Path

On Error Resume Next
For Each p In ObjWIA.Properties
i = i + 1
V_ID = p.PropertyID

If p.PropertyID = 2 Then
ExifModify.Exif_info3 = p.Value(1) + p.Value(2) / 60 + p.Value(3) / 3600 'ID=2=緯度
ElseIf p.PropertyID = 4 Then
ExifModify.Exif_info4 = p.Value(1) + p.Value(2) / 60 + p.Value(3) / 3600 'ID=4=経度
ElseIf p.PropertyID = 272 Then
ExifModify.Exif_info1 = p.Value 'ID=272=カメラ型番
ElseIf p.PropertyID = 274 Then
ExifModify.Exif_info5 = p.Value 'ID=274=回転方向
ElseIf p.PropertyID = 36867 Then
ExifModify.Exif_info2 = p.Value 'ID=36867=撮影時間
End If

Next
On Error GoTo 0

Set ObjWIA = Nothing

ExifModify.Show
End If
End Sub

Private Sub GotoExif_3_Click()
If (ckFolder.ckPhotoPath_1 = "") Then
Exit Sub
End If


FilePath = ckFolder.Folder_1 & "\" & ckFolder.ckPhotoPath_3
If Dir(FilePath, vbDirectory) = "" Then
MsgBox "ファイルがありません"
Exit Sub
Else
ExifModify.Exif_Path = FilePath
ExifModify.Exif_Image.Picture = LoadPicture(FilePath)

ExifModify.Exif_info1 = ""
ExifModify.Exif_info2 = ""
ExifModify.Exif_info3 = ""
ExifModify.Exif_info4 = ""
ExifModify.Exif_info5 = ""

If (ExifModify.Exif_Path = "") Then
Exit Sub
End If
If (Dir(ExifModify.Exif_Path, vbDirectory) = "") Then
MsgBox "ファイルがありません"
Exit Sub
End If

Set ObjWIA = CreateObject("Wia.ImageFile")
ObjWIA.LoadFile ExifModify.Exif_Path

On Error Resume Next
For Each p In ObjWIA.Properties
i = i + 1
V_ID = p.PropertyID

If p.PropertyID = 2 Then
ExifModify.Exif_info3 = p.Value(1) + p.Value(2) / 60 + p.Value(3) / 3600 'ID=2=緯度
ElseIf p.PropertyID = 4 Then
ExifModify.Exif_info4 = p.Value(1) + p.Value(2) / 60 + p.Value(3) / 3600 'ID=4=経度
ElseIf p.PropertyID = 272 Then
ExifModify.Exif_info1 = p.Value 'ID=272=カメラ型番
ElseIf p.PropertyID = 274 Then
ExifModify.Exif_info5 = p.Value 'ID=274=回転方向
ElseIf p.PropertyID = 36867 Then
ExifModify.Exif_info2 = p.Value 'ID=36867=撮影時間
End If

Next
On Error GoTo 0

Set ObjWIA = Nothing

ExifModify.Show
End If
End Sub

Private Sub GotoExif_4_Click()
If (ckFolder.ckPhotoPath_1 = "") Then
Exit Sub
End If


FilePath = ckFolder.Folder_1 & "\" & ckFolder.ckPhotoPath_4
If Dir(FilePath, vbDirectory) = "" Then
MsgBox "ファイルがありません"
Exit Sub
Else
ExifModify.Exif_Path = FilePath
ExifModify.Exif_Image.Picture = LoadPicture(FilePath)

ExifModify.Exif_info1 = ""
ExifModify.Exif_info2 = ""
ExifModify.Exif_info3 = ""
ExifModify.Exif_info4 = ""
ExifModify.Exif_info5 = ""

If (ExifModify.Exif_Path = "") Then
Exit Sub
End If
If (Dir(ExifModify.Exif_Path, vbDirectory) = "") Then
MsgBox "ファイルがありません"
Exit Sub
End If

Set ObjWIA = CreateObject("Wia.ImageFile")
ObjWIA.LoadFile ExifModify.Exif_Path

On Error Resume Next
For Each p In ObjWIA.Properties
i = i + 1
V_ID = p.PropertyID

If p.PropertyID = 2 Then
ExifModify.Exif_info3 = p.Value(1) + p.Value(2) / 60 + p.Value(3) / 3600 'ID=2=緯度
ElseIf p.PropertyID = 4 Then
ExifModify.Exif_info4 = p.Value(1) + p.Value(2) / 60 + p.Value(3) / 3600 'ID=4=経度
ElseIf p.PropertyID = 272 Then
ExifModify.Exif_info1 = p.Value 'ID=272=カメラ型番
ElseIf p.PropertyID = 274 Then
ExifModify.Exif_info5 = p.Value 'ID=274=回転方向
ElseIf p.PropertyID = 36867 Then
ExifModify.Exif_info2 = p.Value 'ID=36867=撮影時間
End If

Next
On Error GoTo 0

Set ObjWIA = Nothing

ExifModify.Show
End If
End Sub

Private Sub GotoExif_5_Click()
If (ckFolder.ckPhotoPath_1 = "") Then
Exit Sub
End If


FilePath = ckFolder.Folder_1 & "\" & ckFolder.ckPhotoPath_5
If Dir(FilePath, vbDirectory) = "" Then
MsgBox "ファイルがありません"
Exit Sub
Else
ExifModify.Exif_Path = FilePath
ExifModify.Exif_Image.Picture = LoadPicture(FilePath)

ExifModify.Exif_info1 = ""
ExifModify.Exif_info2 = ""
ExifModify.Exif_info3 = ""
ExifModify.Exif_info4 = ""
ExifModify.Exif_info5 = ""

If (ExifModify.Exif_Path = "") Then
Exit Sub
End If
If (Dir(ExifModify.Exif_Path, vbDirectory) = "") Then
MsgBox "ファイルがありません"
Exit Sub
End If

Set ObjWIA = CreateObject("Wia.ImageFile")
ObjWIA.LoadFile ExifModify.Exif_Path

On Error Resume Next
For Each p In ObjWIA.Properties
i = i + 1
V_ID = p.PropertyID

If p.PropertyID = 2 Then
ExifModify.Exif_info3 = p.Value(1) + p.Value(2) / 60 + p.Value(3) / 3600 'ID=2=緯度
ElseIf p.PropertyID = 4 Then
ExifModify.Exif_info4 = p.Value(1) + p.Value(2) / 60 + p.Value(3) / 3600 'ID=4=経度
ElseIf p.PropertyID = 272 Then
ExifModify.Exif_info1 = p.Value 'ID=272=カメラ型番
ElseIf p.PropertyID = 274 Then
ExifModify.Exif_info5 = p.Value 'ID=274=回転方向
ElseIf p.PropertyID = 36867 Then
ExifModify.Exif_info2 = p.Value 'ID=36867=撮影時間
End If

Next
On Error GoTo 0

Set ObjWIA = Nothing

ExifModify.Show
End If
End Sub

Private Sub GotoExif_6_Click()
If (ckFolder.ckPhotoPath_1 = "") Then
Exit Sub
End If


FilePath = ckFolder.Folder_1 & "\" & ckFolder.ckPhotoPath_6
If Dir(FilePath, vbDirectory) = "" Then
MsgBox "ファイルがありません"
Exit Sub
Else
ExifModify.Exif_Path = FilePath
ExifModify.Exif_Image.Picture = LoadPicture(FilePath)

ExifModify.Exif_info1 = ""
ExifModify.Exif_info2 = ""
ExifModify.Exif_info3 = ""
ExifModify.Exif_info4 = ""
ExifModify.Exif_info5 = ""

If (ExifModify.Exif_Path = "") Then
Exit Sub
End If
If (Dir(ExifModify.Exif_Path, vbDirectory) = "") Then
MsgBox "ファイルがありません"
Exit Sub
End If

Set ObjWIA = CreateObject("Wia.ImageFile")
ObjWIA.LoadFile ExifModify.Exif_Path

On Error Resume Next
For Each p In ObjWIA.Properties
i = i + 1
V_ID = p.PropertyID

If p.PropertyID = 2 Then
ExifModify.Exif_info3 = p.Value(1) + p.Value(2) / 60 + p.Value(3) / 3600 'ID=2=緯度
ElseIf p.PropertyID = 4 Then
ExifModify.Exif_info4 = p.Value(1) + p.Value(2) / 60 + p.Value(3) / 3600 'ID=4=経度
ElseIf p.PropertyID = 272 Then
ExifModify.Exif_info1 = p.Value 'ID=272=カメラ型番
ElseIf p.PropertyID = 274 Then
ExifModify.Exif_info5 = p.Value 'ID=274=回転方向
ElseIf p.PropertyID = 36867 Then
ExifModify.Exif_info2 = p.Value 'ID=36867=撮影時間
End If

Next
On Error GoTo 0

Set ObjWIA = Nothing

ExifModify.Show
End If
End Sub

Private Sub GotoExif_7_Click()
If (ckFolder.ckPhotoPath_1 = "") Then
Exit Sub
End If


FilePath = ckFolder.Folder_1 & "\" & ckFolder.ckPhotoPath_7
If Dir(FilePath, vbDirectory) = "" Then
MsgBox "ファイルがありません"
Exit Sub
Else
ExifModify.Exif_Path = FilePath
ExifModify.Exif_Image.Picture = LoadPicture(FilePath)

ExifModify.Exif_info1 = ""
ExifModify.Exif_info2 = ""
ExifModify.Exif_info3 = ""
ExifModify.Exif_info4 = ""
ExifModify.Exif_info5 = ""

If (ExifModify.Exif_Path = "") Then
Exit Sub
End If
If (Dir(ExifModify.Exif_Path, vbDirectory) = "") Then
MsgBox "ファイルがありません"
Exit Sub
End If

Set ObjWIA = CreateObject("Wia.ImageFile")
ObjWIA.LoadFile ExifModify.Exif_Path

On Error Resume Next
For Each p In ObjWIA.Properties
i = i + 1
V_ID = p.PropertyID

If p.PropertyID = 2 Then
ExifModify.Exif_info3 = p.Value(1) + p.Value(2) / 60 + p.Value(3) / 3600 'ID=2=緯度
ElseIf p.PropertyID = 4 Then
ExifModify.Exif_info4 = p.Value(1) + p.Value(2) / 60 + p.Value(3) / 3600 'ID=4=経度
ElseIf p.PropertyID = 272 Then
ExifModify.Exif_info1 = p.Value 'ID=272=カメラ型番
ElseIf p.PropertyID = 274 Then
ExifModify.Exif_info5 = p.Value 'ID=274=回転方向
ElseIf p.PropertyID = 36867 Then
ExifModify.Exif_info2 = p.Value 'ID=36867=撮影時間
End If

Next
On Error GoTo 0

Set ObjWIA = Nothing

ExifModify.Show
End If
End Sub

Private Sub GotoExif_8_Click()
If (ckFolder.ckPhotoPath_1 = "") Then
Exit Sub
End If


FilePath = ckFolder.Folder_1 & "\" & ckFolder.ckPhotoPath_8
If Dir(FilePath, vbDirectory) = "" Then
MsgBox "ファイルがありません"
Exit Sub
Else
ExifModify.Exif_Path = FilePath
ExifModify.Exif_Image.Picture = LoadPicture(FilePath)

ExifModify.Exif_info1 = ""
ExifModify.Exif_info2 = ""
ExifModify.Exif_info3 = ""
ExifModify.Exif_info4 = ""
ExifModify.Exif_info5 = ""

If (ExifModify.Exif_Path = "") Then
Exit Sub
End If
If (Dir(ExifModify.Exif_Path, vbDirectory) = "") Then
MsgBox "ファイルがありません"
Exit Sub
End If

Set ObjWIA = CreateObject("Wia.ImageFile")
ObjWIA.LoadFile ExifModify.Exif_Path

On Error Resume Next
For Each p In ObjWIA.Properties
i = i + 1
V_ID = p.PropertyID

If p.PropertyID = 2 Then
ExifModify.Exif_info3 = p.Value(1) + p.Value(2) / 60 + p.Value(3) / 3600 'ID=2=緯度
ElseIf p.PropertyID = 4 Then
ExifModify.Exif_info4 = p.Value(1) + p.Value(2) / 60 + p.Value(3) / 3600 'ID=4=経度
ElseIf p.PropertyID = 272 Then
ExifModify.Exif_info1 = p.Value 'ID=272=カメラ型番
ElseIf p.PropertyID = 274 Then
ExifModify.Exif_info5 = p.Value 'ID=274=回転方向
ElseIf p.PropertyID = 36867 Then
ExifModify.Exif_info2 = p.Value 'ID=36867=撮影時間
End If

Next
On Error GoTo 0

Set ObjWIA = Nothing

ExifModify.Show
End If
End Sub

Private Sub GotoExif_9_Click()
If (ckFolder.ckPhotoPath_1 = "") Then
Exit Sub
End If


FilePath = ckFolder.Folder_1 & "\" & ckFolder.ckPhotoPath_9
If Dir(FilePath, vbDirectory) = "" Then
MsgBox "ファイルがありません"
Exit Sub
Else
ExifModify.Exif_Path = FilePath
ExifModify.Exif_Image.Picture = LoadPicture(FilePath)

ExifModify.Exif_info1 = ""
ExifModify.Exif_info2 = ""
ExifModify.Exif_info3 = ""
ExifModify.Exif_info4 = ""
ExifModify.Exif_info5 = ""

If (ExifModify.Exif_Path = "") Then
Exit Sub
End If
If (Dir(ExifModify.Exif_Path, vbDirectory) = "") Then
MsgBox "ファイルがありません"
Exit Sub
End If

Set ObjWIA = CreateObject("Wia.ImageFile")
ObjWIA.LoadFile ExifModify.Exif_Path

On Error Resume Next
For Each p In ObjWIA.Properties
i = i + 1
V_ID = p.PropertyID

If p.PropertyID = 2 Then
ExifModify.Exif_info3 = p.Value(1) + p.Value(2) / 60 + p.Value(3) / 3600 'ID=2=緯度
ElseIf p.PropertyID = 4 Then
ExifModify.Exif_info4 = p.Value(1) + p.Value(2) / 60 + p.Value(3) / 3600 'ID=4=経度
ElseIf p.PropertyID = 272 Then
ExifModify.Exif_info1 = p.Value 'ID=272=カメラ型番
ElseIf p.PropertyID = 274 Then
ExifModify.Exif_info5 = p.Value 'ID=274=回転方向
ElseIf p.PropertyID = 36867 Then
ExifModify.Exif_info2 = p.Value 'ID=36867=撮影時間
End If

Next
On Error GoTo 0

Set ObjWIA = Nothing

ExifModify.Show
End If
End Sub
Private Sub GotoExif_10_Click()
If (ckFolder.ckPhotoPath_1 = "") Then
Exit Sub
End If


FilePath = ckFolder.Folder_1 & "\" & ckFolder.ckPhotoPath_10
If Dir(FilePath, vbDirectory) = "" Then
MsgBox "ファイルがありません"
Exit Sub
Else
ExifModify.Exif_Path = FilePath
ExifModify.Exif_Image.Picture = LoadPicture(FilePath)

ExifModify.Exif_info1 = ""
ExifModify.Exif_info2 = ""
ExifModify.Exif_info3 = ""
ExifModify.Exif_info4 = ""
ExifModify.Exif_info5 = ""

If (ExifModify.Exif_Path = "") Then
Exit Sub
End If
If (Dir(ExifModify.Exif_Path, vbDirectory) = "") Then
MsgBox "ファイルがありません"
Exit Sub
End If

Set ObjWIA = CreateObject("Wia.ImageFile")
ObjWIA.LoadFile ExifModify.Exif_Path

On Error Resume Next
For Each p In ObjWIA.Properties
i = i + 1
V_ID = p.PropertyID

If p.PropertyID = 2 Then
ExifModify.Exif_info3 = p.Value(1) + p.Value(2) / 60 + p.Value(3) / 3600 'ID=2=緯度
ElseIf p.PropertyID = 4 Then
ExifModify.Exif_info4 = p.Value(1) + p.Value(2) / 60 + p.Value(3) / 3600 'ID=4=経度
ElseIf p.PropertyID = 272 Then
ExifModify.Exif_info1 = p.Value 'ID=272=カメラ型番
ElseIf p.PropertyID = 274 Then
ExifModify.Exif_info5 = p.Value 'ID=274=回転方向
ElseIf p.PropertyID = 36867 Then
ExifModify.Exif_info2 = p.Value 'ID=36867=撮影時間
End If

Next
On Error GoTo 0

Set ObjWIA = Nothing

ExifModify.Show
End If
End Sub
End Sub

Private Sub GotoExif_11_Click()
If (ckFolder.ckPhotoPath_1 = "") Then
Exit Sub
End If


FilePath = ckFolder.Folder_1 & "\" & ckFolder.ckPhotoPath_11
If Dir(FilePath, vbDirectory) = "" Then
MsgBox "ファイルがありません"
Exit Sub
Else
ExifModify.Exif_Path = FilePath
ExifModify.Exif_Image.Picture = LoadPicture(FilePath)

ExifModify.Exif_info1 = ""
ExifModify.Exif_info2 = ""
ExifModify.Exif_info3 = ""
ExifModify.Exif_info4 = ""
ExifModify.Exif_info5 = ""

If (ExifModify.Exif_Path = "") Then
Exit Sub
End If
If (Dir(ExifModify.Exif_Path, vbDirectory) = "") Then
MsgBox "ファイルがありません"
Exit Sub
End If

Set ObjWIA = CreateObject("Wia.ImageFile")
ObjWIA.LoadFile ExifModify.Exif_Path

On Error Resume Next
For Each p In ObjWIA.Properties
i = i + 1
V_ID = p.PropertyID

If p.PropertyID = 2 Then
ExifModify.Exif_info3 = p.Value(1) + p.Value(2) / 60 + p.Value(3) / 3600 'ID=2=緯度
ElseIf p.PropertyID = 4 Then
ExifModify.Exif_info4 = p.Value(1) + p.Value(2) / 60 + p.Value(3) / 3600 'ID=4=経度
ElseIf p.PropertyID = 272 Then
ExifModify.Exif_info1 = p.Value 'ID=272=カメラ型番
ElseIf p.PropertyID = 274 Then
ExifModify.Exif_info5 = p.Value 'ID=274=回転方向
ElseIf p.PropertyID = 36867 Then
ExifModify.Exif_info2 = p.Value 'ID=36867=撮影時間
End If

Next
On Error GoTo 0

Set ObjWIA = Nothing

ExifModify.Show
End If
End Sub

Private Sub GotoExif_12_Click()
If (ckFolder.ckPhotoPath_1 = "") Then
Exit Sub
End If


FilePath = ckFolder.Folder_1 & "\" & ckFolder.ckPhotoPath_12
If Dir(FilePath, vbDirectory) = "" Then
MsgBox "ファイルがありません"
Exit Sub
Else
ExifModify.Exif_Path = FilePath
ExifModify.Exif_Image.Picture = LoadPicture(FilePath)

ExifModify.Exif_info1 = ""
ExifModify.Exif_info2 = ""
ExifModify.Exif_info3 = ""
ExifModify.Exif_info4 = ""
ExifModify.Exif_info5 = ""

If (ExifModify.Exif_Path = "") Then
Exit Sub
End If
If (Dir(ExifModify.Exif_Path, vbDirectory) = "") Then
MsgBox "ファイルがありません"
Exit Sub
End If

Set ObjWIA = CreateObject("Wia.ImageFile")
ObjWIA.LoadFile ExifModify.Exif_Path

On Error Resume Next
For Each p In ObjWIA.Properties
i = i + 1
V_ID = p.PropertyID

If p.PropertyID = 2 Then
ExifModify.Exif_info3 = p.Value(1) + p.Value(2) / 60 + p.Value(3) / 3600 'ID=2=緯度
ElseIf p.PropertyID = 4 Then
ExifModify.Exif_info4 = p.Value(1) + p.Value(2) / 60 + p.Value(3) / 3600 'ID=4=経度
ElseIf p.PropertyID = 272 Then
ExifModify.Exif_info1 = p.Value 'ID=272=カメラ型番
ElseIf p.PropertyID = 274 Then
ExifModify.Exif_info5 = p.Value 'ID=274=回転方向
ElseIf p.PropertyID = 36867 Then
ExifModify.Exif_info2 = p.Value 'ID=36867=撮影時間
End If

Next
On Error GoTo 0

Set ObjWIA = Nothing

ExifModify.Show
End If
End Sub

 

Private Sub ReNew_Click()
Dim i As Integer
Dim oldPath, newFilename, newPath As String

'新規名称付け直したファイル複製(元ファイルは残します)

 

 

 

End Sub

Private Sub ReNewName_1_Click()
Dim ResultRename, FilePath, Target, TargetFolder, FileName As String
Dim DateValue As String

' 選択項目入力
ckRename = MsgBox("リネーム格納行います。", vbYesNo)

If (ckRename = vbYes) Then
Else
Exit Sub
End If

On Error Resume Next ' エラー時は強制で次に以降
DateValue = Date


'ファイル元パスがない場合終了
FileName = ckPhotoPath_1
FilePath = ckFolder.Folder_1 & "\" & ckPhotoPath_1
ResultRename = ckFolder.Rename_1
If (FileName = "") Then
Exit Sub
End If
If (ResultRename = "") Then
Exit Sub
End If
If (Right(ResultRename, 4) <> ".jpg") Then
MsgBox "拡張子がjpgではありません"
Exit Sub
End If
'フォルダ格納設定⇒JPGで格納
Target = ckFolder.Folder_1 & "\" & ResultRename
If Dir(Target, vbDirectory) = "" Then
'フォルダ内に重複名がない場合ファイルがない場合そのまま作成
Else
'フォルダ内に重複名がある場合ファイル名に時間とタグをがない場合日時データを付与して複製保存
Target = TargetFolder & "\" & Range("k" & i) & "_" & Format(DateValue, "yyyymmddhhnnss") & "_同名格納" & ".jpg"
End If
FileCopy FilePath, Target

 


End Sub

Private Sub ReNewName_2_Click()
Dim ResultRename, FilePath, Target, TargetFolder, FileName As String
Dim DateValue As String

' 選択項目入力
ckRename = MsgBox("リネーム格納行います。", vbYesNo)

If (ckRename = vbYes) Then
Else
Exit Sub
End If

On Error Resume Next ' エラー時は強制で次に以降
DateValue = Date


'ファイル元パスがない場合終了
FileName = ckPhotoPath_1
FilePath = ckFolder.Folder_1 & "\" & ckPhotoPath_2
ResultRename = ckFolder.Rename_2
If (FileName = "") Then
Exit Sub
End If
If (ResultRename = "") Then
Exit Sub
End If
If (Right(ResultRename, 4) <> ".jpg") Then
MsgBox "拡張子がjpgではありません"
Exit Sub
End If
'フォルダ格納設定⇒JPGで格納
Target = ckFolder.Folder_1 & "\" & ResultRename
If Dir(Target, vbDirectory) = "" Then
'フォルダ内に重複名がない場合ファイルがない場合そのまま作成
Else
'フォルダ内に重複名がある場合ファイル名に時間とタグをがない場合日時データを付与して複製保存
Target = TargetFolder & "\" & Range("k" & i) & "_" & Format(DateValue, "yyyymmddhhnnss") & "_同名格納" & ".jpg"
End If
FileCopy FilePath, Target
End Sub

Private Sub ReNewName_3_Click()
Dim ResultRename, FilePath, Target, TargetFolder, FileName As String
Dim DateValue As String

' 選択項目入力
ckRename = MsgBox("リネーム格納行います。", vbYesNo)

If (ckRename = vbYes) Then
Else
Exit Sub
End If

On Error Resume Next ' エラー時は強制で次に以降
DateValue = Date


'ファイル元パスがない場合終了
FileName = ckPhotoPath_1
FilePath = ckFolder.Folder_1 & "\" & ckPhotoPath_3
ResultRename = ckFolder.Rename_3
If (FileName = "") Then
Exit Sub
End If
If (ResultRename = "") Then
Exit Sub
End If
If (Right(ResultRename, 4) <> ".jpg") Then
MsgBox "拡張子がjpgではありません"
Exit Sub
End If
'フォルダ格納設定⇒JPGで格納
Target = ckFolder.Folder_1 & "\" & ResultRename
If Dir(Target, vbDirectory) = "" Then
'フォルダ内に重複名がない場合ファイルがない場合そのまま作成
Else
'フォルダ内に重複名がある場合ファイル名に時間とタグをがない場合日時データを付与して複製保存
Target = TargetFolder & "\" & Range("k" & i) & "_" & Format(DateValue, "yyyymmddhhnnss") & "_同名格納" & ".jpg"
End If
FileCopy FilePath, Target
End Sub

Private Sub ReNewName_4_Click()
Dim ResultRename, FilePath, Target, TargetFolder, FileName As String
Dim DateValue As String

' 選択項目入力
ckRename = MsgBox("リネーム格納行います。", vbYesNo)

If (ckRename = vbYes) Then
Else
Exit Sub
End If

On Error Resume Next ' エラー時は強制で次に以降
DateValue = Date


'ファイル元パスがない場合終了
FileName = ckPhotoPath_1
FilePath = ckFolder.Folder_1 & "\" & ckPhotoPath_4
ResultRename = ckFolder.Rename_4
If (FileName = "") Then
Exit Sub
End If
If (ResultRename = "") Then
Exit Sub
End If
If (Right(ResultRename, 4) <> ".jpg") Then
MsgBox "拡張子がjpgではありません"
Exit Sub
End If
'フォルダ格納設定⇒JPGで格納
Target = ckFolder.Folder_1 & "\" & ResultRename
If Dir(Target, vbDirectory) = "" Then
'フォルダ内に重複名がない場合ファイルがない場合そのまま作成
Else
'フォルダ内に重複名がある場合ファイル名に時間とタグをがない場合日時データを付与して複製保存
Target = TargetFolder & "\" & Range("k" & i) & "_" & Format(DateValue, "yyyymmddhhnnss") & "_同名格納" & ".jpg"
End If
FileCopy FilePath, Target
End Sub

Private Sub ReNewName_5_Click()
Dim ResultRename, FilePath, Target, TargetFolder, FileName As String
Dim DateValue As String

' 選択項目入力
ckRename = MsgBox("リネーム格納行います。", vbYesNo)

If (ckRename = vbYes) Then
Else
Exit Sub
End If

On Error Resume Next ' エラー時は強制で次に以降
DateValue = Date


'ファイル元パスがない場合終了
FileName = ckPhotoPath_1
FilePath = ckFolder.Folder_1 & "\" & ckPhotoPath_5
ResultRename = ckFolder.Rename_5
If (FileName = "") Then
Exit Sub
End If
If (ResultRename = "") Then
Exit Sub
End If
If (Right(ResultRename, 4) <> ".jpg") Then
MsgBox "拡張子がjpgではありません"
Exit Sub
End If
'フォルダ格納設定⇒JPGで格納
Target = ckFolder.Folder_1 & "\" & ResultRename
If Dir(Target, vbDirectory) = "" Then
'フォルダ内に重複名がない場合ファイルがない場合そのまま作成
Else
'フォルダ内に重複名がある場合ファイル名に時間とタグをがない場合日時データを付与して複製保存
Target = TargetFolder & "\" & Range("k" & i) & "_" & Format(DateValue, "yyyymmddhhnnss") & "_同名格納" & ".jpg"
End If
FileCopy FilePath, Target
End Sub

Private Sub ReNewName_6_Click()
Dim ResultRename, FilePath, Target, TargetFolder, FileName As String
Dim DateValue As String

' 選択項目入力
ckRename = MsgBox("リネーム格納行います。", vbYesNo)

If (ckRename = vbYes) Then
Else
Exit Sub
End If

On Error Resume Next ' エラー時は強制で次に以降
DateValue = Date


'ファイル元パスがない場合終了
FileName = ckPhotoPath_1
FilePath = ckFolder.Folder_1 & "\" & ckPhotoPath_6
ResultRename = ckFolder.Rename_6
If (FileName = "") Then
Exit Sub
End If
If (ResultRename = "") Then
Exit Sub
End If
If (Right(ResultRename, 4) <> ".jpg") Then
MsgBox "拡張子がjpgではありません"
Exit Sub
End If
'フォルダ格納設定⇒JPGで格納
Target = ckFolder.Folder_1 & "\" & ResultRename
If Dir(Target, vbDirectory) = "" Then
'フォルダ内に重複名がない場合ファイルがない場合そのまま作成
Else
'フォルダ内に重複名がある場合ファイル名に時間とタグをがない場合日時データを付与して複製保存
Target = TargetFolder & "\" & Range("k" & i) & "_" & Format(DateValue, "yyyymmddhhnnss") & "_同名格納" & ".jpg"
End If
FileCopy FilePath, Target
End Sub

Private Sub ReNewName_7_Click()
Dim ResultRename, FilePath, Target, TargetFolder, FileName As String
Dim DateValue As String

' 選択項目入力
ckRename = MsgBox("リネーム格納行います。", vbYesNo)

If (ckRename = vbYes) Then
Else
Exit Sub
End If

On Error Resume Next ' エラー時は強制で次に以降
DateValue = Date


'ファイル元パスがない場合終了
FileName = ckPhotoPath_1
FilePath = ckFolder.Folder_1 & "\" & ckPhotoPath_7
ResultRename = ckFolder.Rename_7
If (FileName = "") Then
Exit Sub
End If
If (ResultRename = "") Then
Exit Sub
End If
If (Right(ResultRename, 4) <> ".jpg") Then
MsgBox "拡張子がjpgではありません"
Exit Sub
End If
'フォルダ格納設定⇒JPGで格納
Target = ckFolder.Folder_1 & "\" & ResultRename
If Dir(Target, vbDirectory) = "" Then
'フォルダ内に重複名がない場合ファイルがない場合そのまま作成
Else
'フォルダ内に重複名がある場合ファイル名に時間とタグをがない場合日時データを付与して複製保存
Target = TargetFolder & "\" & Range("k" & i) & "_" & Format(DateValue, "yyyymmddhhnnss") & "_同名格納" & ".jpg"
End If
FileCopy FilePath, Target
End Sub

Private Sub ReNewName_8_Click()
Dim ResultRename, FilePath, Target, TargetFolder, FileName As String
Dim DateValue As String

' 選択項目入力
ckRename = MsgBox("リネーム格納行います。", vbYesNo)

If (ckRename = vbYes) Then
Else
Exit Sub
End If

On Error Resume Next ' エラー時は強制で次に以降
DateValue = Date


'ファイル元パスがない場合終了
FileName = ckPhotoPath_1
FilePath = ckFolder.Folder_1 & "\" & ckPhotoPath_8
ResultRename = ckFolder.Rename_8
If (FileName = "") Then
Exit Sub
End If
If (ResultRename = "") Then
Exit Sub
End If
If (Right(ResultRename, 4) <> ".jpg") Then
MsgBox "拡張子がjpgではありません"
Exit Sub
End If
'フォルダ格納設定⇒JPGで格納
Target = ckFolder.Folder_1 & "\" & ResultRename
If Dir(Target, vbDirectory) = "" Then
'フォルダ内に重複名がない場合ファイルがない場合そのまま作成
Else
'フォルダ内に重複名がある場合ファイル名に時間とタグをがない場合日時データを付与して複製保存
Target = TargetFolder & "\" & Range("k" & i) & "_" & Format(DateValue, "yyyymmddhhnnss") & "_同名格納" & ".jpg"
End If
FileCopy FilePath, Target
End Sub

Private Sub ReNewName_9_Click()
Dim ResultRename, FilePath, Target, TargetFolder, FileName As String
Dim DateValue As String

' 選択項目入力
ckRename = MsgBox("リネーム格納行います。", vbYesNo)

If (ckRename = vbYes) Then
Else
Exit Sub
End If

On Error Resume Next ' エラー時は強制で次に以降
DateValue = Date


'ファイル元パスがない場合終了
FileName = ckPhotoPath_1
FilePath = ckFolder.Folder_1 & "\" & ckPhotoPath_9
ResultRename = ckFolder.Rename_9
If (FileName = "") Then
Exit Sub
End If
If (ResultRename = "") Then
Exit Sub
End If
If (Right(ResultRename, 4) <> ".jpg") Then
MsgBox "拡張子がjpgではありません"
Exit Sub
End If
'フォルダ格納設定⇒JPGで格納
Target = ckFolder.Folder_1 & "\" & ResultRename
If Dir(Target, vbDirectory) = "" Then
'フォルダ内に重複名がない場合ファイルがない場合そのまま作成
Else
'フォルダ内に重複名がある場合ファイル名に時間とタグをがない場合日時データを付与して複製保存
Target = TargetFolder & "\" & Range("k" & i) & "_" & Format(DateValue, "yyyymmddhhnnss") & "_同名格納" & ".jpg"
End If
FileCopy FilePath, Target
End Sub

Private Sub ReNewName_10_Click()
Dim ResultRename, FilePath, Target, TargetFolder, FileName As String
Dim DateValue As String

' 選択項目入力
ckRename = MsgBox("リネーム格納行います。", vbYesNo)

If (ckRename = vbYes) Then
Else
Exit Sub
End If

On Error Resume Next ' エラー時は強制で次に以降
DateValue = Date


'ファイル元パスがない場合終了
FileName = ckPhotoPath_1
FilePath = ckFolder.Folder_1 & "\" & ckPhotoPath_10
ResultRename = ckFolder.Rename_10
If (FileName = "") Then
Exit Sub
End If
If (ResultRename = "") Then
Exit Sub
End If
If (Right(ResultRename, 4) <> ".jpg") Then
MsgBox "拡張子がjpgではありません"
Exit Sub
End If
'フォルダ格納設定⇒JPGで格納
Target = ckFolder.Folder_1 & "\" & ResultRename
If Dir(Target, vbDirectory) = "" Then
'フォルダ内に重複名がない場合ファイルがない場合そのまま作成
Else
'フォルダ内に重複名がある場合ファイル名に時間とタグをがない場合日時データを付与して複製保存
Target = TargetFolder & "\" & Range("k" & i) & "_" & Format(DateValue, "yyyymmddhhnnss") & "_同名格納" & ".jpg"
End If
FileCopy FilePath, Target
End Sub

Private Sub ReNewName_11_Click()
Dim ResultRename, FilePath, Target, TargetFolder, FileName As String
Dim DateValue As String

' 選択項目入力
ckRename = MsgBox("リネーム格納行います。", vbYesNo)

If (ckRename = vbYes) Then
Else
Exit Sub
End If

On Error Resume Next ' エラー時は強制で次に以降
DateValue = Date


'ファイル元パスがない場合終了
FileName = ckPhotoPath_1
FilePath = ckFolder.Folder_1 & "\" & ckPhotoPath_11
ResultRename = ckFolder.Rename_11
If (FileName = "") Then
Exit Sub
End If
If (ResultRename = "") Then
Exit Sub
End If
If (Right(ResultRename, 4) <> ".jpg") Then
MsgBox "拡張子がjpgではありません"
Exit Sub
End If
'フォルダ格納設定⇒JPGで格納
Target = ckFolder.Folder_1 & "\" & ResultRename
If Dir(Target, vbDirectory) = "" Then
'フォルダ内に重複名がない場合ファイルがない場合そのまま作成
Else
'フォルダ内に重複名がある場合ファイル名に時間とタグをがない場合日時データを付与して複製保存
Target = TargetFolder & "\" & Range("k" & i) & "_" & Format(DateValue, "yyyymmddhhnnss") & "_同名格納" & ".jpg"
End If
FileCopy FilePath, Target
End Sub

Private Sub ReNewName_12_Click()
Dim ResultRename, FilePath, Target, TargetFolder, FileName As String
Dim DateValue As String

' 選択項目入力
ckRename = MsgBox("リネーム格納行います。", vbYesNo)

If (ckRename = vbYes) Then
Else
Exit Sub
End If

On Error Resume Next ' エラー時は強制で次に以降
DateValue = Date


'ファイル元パスがない場合終了
FileName = ckPhotoPath_1
FilePath = ckFolder.Folder_1 & "\" & ckPhotoPath_12
ResultRename = ckFolder.Rename_12
If (FileName = "") Then
Exit Sub
End If
If (ResultRename = "") Then
Exit Sub
End If
If (Right(ResultRename, 4) <> ".jpg") Then
MsgBox "拡張子がjpgではありません"
Exit Sub
End If
'フォルダ格納設定⇒JPGで格納
Target = ckFolder.Folder_1 & "\" & ResultRename
If Dir(Target, vbDirectory) = "" Then
'フォルダ内に重複名がない場合ファイルがない場合そのまま作成
Else
'フォルダ内に重複名がある場合ファイル名に時間とタグをがない場合日時データを付与して複製保存
Target = TargetFolder & "\" & Range("k" & i) & "_" & Format(DateValue, "yyyymmddhhnnss") & "_同名格納" & ".jpg"
End If
FileCopy FilePath, Target
End Sub

Private Sub UserForm_Click()

End Sub

Private Sub UserForm_Initialize()
ckFolder.CoWordReName_3 = 1
End Sub

 ====================================================

 

⇒写真Exif編集アプリver500(3)へ

 

国頭郡(1):美ら海水族館 2018/12/2

 ずっとサーバー設定だったのですが、気分を変えて沖縄旅行続き

 


V_20181202_114236_vHDR_On.mp4

沖縄美ら海水族館 - 沖縄の美ら海を、次の世代へ。-

定番と言っては何だが、美ら海水族館にも行ってきました。

 

撮影日:2018/12/1

撮影場所:国頭郡 (日本)

撮影者:taikobox

  1. 美ら海水族館

  2. 美ら海水族館(大水槽内)

  3. 美ら海水族館(小水槽内)

  4. 美ら海水族館(ミニ水槽内)

  5. 館内資料

  6. 水族館外

  7. 万座毛(水族館後に訪問)

 

大型のジンベイザメが実は狩猟者でなく、プランクトンを濾して食べるのは有名な話ですが、大型のエイやウバザメ、メガマウスなんかの巨大な魚も実は同じように進化しているのは興味深い話やった。

 

 

 

 

 


 

 

 

 

Python勉強(5):ここまでやってなんですが改めてさくらVPS初めからやり直し

さくらVPSにPython3インストール

 

Python3学習用のプラットホームとして、さくらVPSにPython3インストールできたのですが全体システム作成に難儀したので、「ネコでもわかる!さくらインターネットVPS講座」に従い、一気にインストールしなおします。

 

f:id:taikobox:20181207133631p:plain
入門ガイド|VPS(仮想専用サーバー)はさくらインターネット

 

内容は、ここでWordPress入れる+Python3をインストール入力になります。

 

1)OSインストール(CentOS7)+スタートアップスクリプト(LAMP)

 サーバーには重要な情報おいていないのでOSセットアップからやり直し。OSは、さくらVPS上で参考資料の多いCentOS7へ変更。Wordpressインストールするので、スタートアップスクリプトは、LAMPApache+MySQLPHP同時インストール)。

設定項目以下に記す。

f:id:taikobox:20181207135414p:plain

 

2)SSHクライアントソフトのインストール

 ちょうどパソコンも新調したので、SSHクライアントソフトもインストール(以前はTeraTerm使用)。今回はさくらVPSで進められているPuttyをインストール⇒起動してみる。

hdk の自作ソフトの紹介 | PuTTYjp

f:id:taikobox:20181207141201p:plain

Putty起動画面

3)OSのアップデート

 最初にインストールしたOSのアップデート

 上記画面より

    login as:設定したID

    root@******’s password:設定したID

  でログイン後、

      [root@******]#

  と出るので

     #yum update

  と入力すると

          ~

       アップデート内容出力

             ~

      Is this ok [y/d/N]:

  と出力されるので⇒yを押す⇒あとはひたすら待つ(状況に応じては結構長いです)

    Complete!

 完了出力確認して終了!

 

4)一般ユーザーの作成 & rootTeraTerm直接アクセスの禁止

↓一般ユーザーを追加、adduserコマンド⇒passwdコマンドで作成

  [root@******]#adduser User*****
  [root@******]# passwd User*****
  Changing password for user UserTaikobo.
  New password:
  Retype new password:
  passwd: all authentication tokens updated successfully.

↓作成後、ログインできることを確認したのち

  login as: User*****

  User*****@*******'s password:

  SAKURA Internet [Virtual Private Server SERVICE]

↓コマンド su - にてroot(管理者)に切り替え

  [User*****@*******]$ su -

  Password:
↓コマンド su - にてroot(管理者)に切り替えsshの設定ファイル保存
  [root@******* ~]# cd /etc/ssh

  [root@******* ~]# cp sshd_config sshd_config.old

Vimエディタを開いて編集<さくらVPSに標準装備>

  [root@******* ssh]# vim sshd_config

 

Vimエディタを開いて編集 

  49行目の

   PermitRootLogin yes⇒PermitRootLogin no

  ⇒rootによるログインする⇒しないの切替設定を行う

  ⇒Vimエディタを保存して終了

sshd再起動

 [root@******* ssh]# systemctl restart sshd.service

 

 編集内容詳細は以下参照

knowledge.sakura.ad.jp

SSHのポート番号を変更 – SSHサーバーの設定 – Linux入門
http://webkaru.net/linux/change-ssh-port/

ssh接続を鍵認証で行なう
http://www.tooyama.org/ssh-key.html

Linuxのコマンドを勉強しよう!!Linux初心者の基礎知識
http://www.linux-beginner.com/linux_command.html

 

4)Apacheの設定

すでにスタートアップ時にApacheインストール済みなので、ファイヤーウォール設定のみ行う

↓一般ユーザー⇒管理者切替後、”systemctl start httpd” Apache起動

 [root@******* ~]# systemctl start httpd

↓コマンド”firewall-cmd”でhttpとhttpsをpublic(ファイヤーウォールの解除)

 [root@******* ~]# firewall-cmd --add-service=http --zone=public --permanent
 Warning: ALREADY_ENABLED: http
 success
 [root@******* ~]# firewall-cmd --add-service=https --zone=public --permanent
 Warning: ALREADY_ENABLED: https
 success

 ↓直接アドレス打ち込みアクセスできること確認f:id:taikobox:20181208104040p:plain

 

 ↓コマンド”systemctl enable httpd”でHTTPサーバー常時起動

     [root@******* ~]# systemctl enable httpd

 

5)パーミッション(権限許可)の確認⇒変更

 ↓root(管理者)権限で⇒”cd /var/www”でwwwフォルダ移動⇒”ls -l”ファイル詳細表示
  [root@*******~]# cd /var/www
  [root@******* www]# ls -l
  total 0
  drwxr-xr-x 2 root root 6 Nov 5 10:47 cgi-bin 
  drwxr-xr-x 2 root root 6 Nov 5 10:47 html

 f:id:taikobox:20181208121243p:plain

権限

r=read(読み)

w=write(書き)

x=execute(実行)

 ↓新しく作った”User*****”にも権限許可

 [root@****** www]# cd /var/www
 [root@****** www]# chown apache:User****** html
 [root@****** www]# chmod 775 html

 *

 Wordpressから触ることも前提なので、下記のリンク内容そのまま利用します。

 

ネコでもわかる!さくらのVPS講座 ~第三回「Apacheをインストールしよう」 | さくらのナレッジ

ここに丁寧に説明あります

  ↓変更確認
  drwxrwxr-x 2 apache User****** 6 Nov 5 10:47 html

 

6)ドメイン取得

 ドメイン取得していないことに気が付いたので、取得。

 独自ドメイン取得・管理 – レンタルサーバーはさくらインターネット
https://www.sakura.ne.jp/domain/

  ここはサクッと「Kuccha-Ne.com」で作成確認

 

f:id:taikobox:20181208135202p:plain

 ↓ドメイン側のネームサーバー設定

【ドメイン設定】さくらインターネットで取得・管理中のドメインを利用 – さくらのサポート情報

f:id:taikobox:20181208230322p:plain

 

f:id:taikobox:20181208230638p:plain

ドメイン読込確認する
 

7)先にPython3インストールしておく

 ↓以下の内容に即て、Python3先にインストール
qiita.com

 

 ↓Pythonバージョン確認⇒Python2インストール済み確認

  [root@*****www]# rpm -qa | grep python
  libreport-python-2.1.11-42.el7.centos.x86_64

 ↓IUS のリポジトリyum に追加

      [root@*****www]# qyum -y install https://centos7.iuscommunity.org/ius-release.rpm

 ↓Python3.6.5インストール (拡張モジュール/必要な開発環境/pip コマンド込み)

   [root@*****www]#  yum -y install python36u python36u-devel python36u-pip

 

レポジトリ= repository(直訳:倉庫転じて以下の意味)

情報工学において、仕様・デザイン・ソースコード・テスト情報・インシデント情報など、システムの開発プロジェクトに関連するデータの一元的な貯蔵庫を意味する。日本語レポジトリと表記される場合もある。一種のデータベースであり、ソフトウェア開発および保守における各工程の様々な情報を一元管理する。IUSはレポジトリの一つ

 

pipとは⇒Pythonのパッケージを管理するためのツール

 

yum? とは rpmとは?⇒パッケージの統合管理システム

yumYellowdog Updater Modified

rpmRed Hat Package Manager(レッドハット社作成のため)

qiita.com

 

8)phpMyAdminもインストール

 初期状態で、データベースはインストール済みなので、ブラウザからデータベース操作できるphpMyAdminツールもインストール。

ネコでもわかる!さくらのVPS講座 ~第五回「phpMyAdminを導入しよう」 | さくらのナレッジ

  ↓root権限でphpMyAdminインストール

   [root@****** ]# yum install --enablerepo=remi,remi-php71 phpMyAdmin

  ↓root権限でphpMyAdminの設定変更のためバックアップしてVim起動

  [root@****** ]# cd /etc/httpd/conf.d/
  [root@****** ]# cp phpMyAdmin.conf phpMyAdmin.conf.old
  [root@****** ]# vim phpMyAdmin.conf

 ↓Vimエディタで16行目付近を編集

  #Require local
  Require all granted

f:id:taikobox:20181208134609p:plain

何か間違えたみたいなので確認⇒後回し
 

9)HTML/PHPの動作確認 ドメイン手続き待っている間に

 PHPはスタートアップ時点でインストールされているので動作確認のみ。

 アップデート用のSFTPソフト「RLogin」を準備⇒index.php作成し「Hollow World」

 出力用ミニプログラムを準備⇒アップロードして動作確認。

 (改め知ったことだがFTPって今はあまり使わないんですね・・・) 

 

⇒続き