uniqueFilename

引数に指定したファイル名が存在する場合、重複しないよう連番をつけたファイル名を文字列で返します。

構文
  1. String = uniqueFilename( path )
引数
path
ファイルのパス
戻値
重複しないファイル名

プログラム

//////////////////////////////////////////////////
// 【引数】
//   path : ファイルのパス 
// 【戻値】
//   重複しないファイル名 
//////////////////////////////////////////////////
FUNCTION uniqueFilename(path)
	DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
	IFB FSO.FileExists(path) THEN
		DIM fol = FSO.GetParentFolderName(path)
		DIM filename = FSO.GetBaseName(path)
		DIM extension = FSO.GetExtensionName(path)
		DIM i = 2
		WHILE FSO.FileExists(FSO.BuildPath(fol, filename + " (" + i + ")." + extension))
			i = i + 1
		WEND
		RESULT = FSO.BuildPath(fol, filename + " (" + i + ")." + extension)
	ELSE
		RESULT = path
	ENDIF
FEND

解説

  1. 3行目
    	IFB FSO.FileExists(path) THEN
    
    変数pathに指定したパスが存在したら4行目>>>、存在しなければ13行目>>>
  2. 4-11行目
    		DIM fol = FSO.GetParentFolderName(path)
    		DIM filename = FSO.GetBaseName(path)
    		DIM extension = FSO.GetExtensionName(path)
    		DIM i = 2
    		WHILE FSO.FileExists(FSO.BuildPath(fol, filename + " (" + i + ")." + extension))
    			i = i + 1
    		WEND
    		RESULT = FSO.BuildPath(fol, filename + " (" + i + ")." + extension)
    
    パスをフォルダ名・ファイル名・拡張子に分けて、変数fol・filename・extensionに代入する。ファイル名が重複しなくなるまで数値をインクリメントし、重複しなくなったらそのパスを返す。
  3. 13行目
    		RESULT = path
    
    変数pathを戻値として返す。

プログラム実行例

表示されているすべてのウィンドウのスクリーンショットを保存

DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")

DIM folderspec = "D:\Desktop\Screenshot"
IF FSO.FolderExists(folderspec) = FALSE THEN FSO.CreateFolder(folderspec)

FOR n = 0 TO GETALLWIN() - 1
	DIM ID = ALL_WIN_ID[n]
	IFB STATUS(ID, ST_VISIBLE) = TRUE		
		DIM filename = ID + "_" + STATUS(ID, ST_TITLE)
		filename = PathCleanupSpec(filename)
		DIM path = FSO.BuildPath(folderspec, filename)
		path = uniqueFilename(path)
		SAVEIMG(path, id)
	ENDIF
NEXT

//////////////////////////////////////////////////
// 【引数】
//   filename : 使えない文字を削除するファイル・フォルダ名 
// 【戻値】
//   ファイル名として使えない文字を削除した文字列 
//////////////////////////////////////////////////
FUNCTION PathCleanupSpec(filename)
	DIM filenameErrChar[12] = "\", "/", ":", "*", "?", "<#DBL>", "<#CR>", "<#TAB>", "<", ">", "|", "[", "]"
	FOR item IN filenameErrChar
		filename = REPLACE(filename, item, "")
	NEXT
	RESULT = filename
FEND

//////////////////////////////////////////////////
// 【引数】
//   path : ファイルのパス 
// 【戻値】
//   重複しないファイル名 
//////////////////////////////////////////////////
FUNCTION uniqueFilename(path)
	DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
	IFB FSO.FileExists(path) THEN
		DIM fol = FSO.GetParentFolderName(path)
		DIM filename = FSO.GetBaseName(path)
		DIM extension = FSO.GetExtensionName(path)
		DIM i = 2
		WHILE FSO.FileExists(FSO.BuildPath(fol, filename + " (" + i + ")." + extension))
			i = i + 1
		WEND
		RESULT = FSO.BuildPath(fol, filename + " (" + i + ")." + extension)
	ELSE
		RESULT = path
	ENDIF
FEND

画像ファイルの情報を取得

「ピクチャ\100ANDRO\20210314」にある画像ファイルの情報を出力。

CONST ssfMYPICTURES = 39

HASHTBL iColumn

DIM Shell = CREATEOLEOBJ("Shell.Application")
DIM Folder = Shell.NameSpace(ssfMYPICTURES)
DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
DIM path = FSO.BuildPath(Folder.Self.Path, "100ANDRO\20210314")
Folder = Shell.NameSpace(path)
FolderItems = Folder.Items

FOR n = 0 TO 350
	iColumn[Folder.GetDetailsOf(EMPTYPARAM, n)] = n
NEXT

DIM temp = uniqueFilename(FSO.BuildPath(path, "Info.csv"))
FSO.CreateTextFile(temp, FALSE, FALSE)

DIM FID = FOPEN(temp, F_READ OR F_WRITE)

DIM array[] = "ファイル名", "撮影日時", "幅", "高さ", "サイズ", "ビットの深さ", "パス", "焦点距離", "向き"

FOR i = 1 TO UBound(array)
	FPUT(FID, array[i], 1, i)
NEXT

DIM row = 2
DIM extensions[] = ".jpg", ".jpeg", ".png", ".bmp"

FOR FolderItem IN FolderItems
	FUKIDASI(row + "/" + FolderItems.Count)
	IF inArray(Folder.GetDetailsOf(FolderItem, iColumn["ファイル拡張子"]), extensions) = FALSE THEN CONTINUE
	FOR i = 1 TO UBound(array)
		FPUT(FID, Folder.GetDetailsOf(FolderItem, iColumn[array[i]]), row, i)
	NEXT
	row = row + 1
NEXT

FCLOSE(FID)

//////////////////////////////////////////////////
// 【引数】
//   needle : 探す値 
//   haystack : 配列 
//   strict 
// 【戻値】
//   TRUE : 配列中に指定した値が存在する、FFALSE : 配列中に指定した値が存在しない 
//////////////////////////////////////////////////
FUNCTION inArray( needle, haystack[], strict = FALSE)
	DIM res = FALSE
	FOR item IN haystack
		IFB needle = item THEN
			res = TRUE
			BREAK
		ENDIF
	NEXT
	RESULT = res
FEND

//////////////////////////////////////////////////
// 【引数】
//   配列 : 上限値を求める配列 
// 【戻値】
//   配列の上限値 
//////////////////////////////////////////////////
FUNCTION UBound(array[])
	RESULT = RESIZE(array)
FEND

//////////////////////////////////////////////////
// 【引数】
//   path : ファイルのパス 
// 【戻値】
//   重複しないファイル名 
//////////////////////////////////////////////////
FUNCTION uniqueFilename(path)
	DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
	IFB FSO.FileExists(path) THEN
		DIM fol = FSO.GetParentFolderName(path)
		DIM filename = FSO.GetBaseName(path)
		DIM extension = FSO.GetExtensionName(path)
		DIM i = 2
		WHILE FSO.FileExists(FSO.BuildPath(fol, filename + " (" + i + ")." + extension))
			i = i + 1
		WEND
		RESULT = FSO.BuildPath(fol, filename + " (" + i + ")." + extension)
	ELSE
		RESULT = path
	ENDIF
FEND
結果

撮影日時高さサイズビットの深さパス焦点距離向き
‎2021/‎02/‎04 ‏‎12:49‎5504 ピクセル‎3096 ピクセル5.84 MB24D:\Pictures\100ANDRO\20210314\DSC_0001.JPG‎4 mm標準
‎2021/‎02/‎04 ‏‎12:49‎5504 ピクセル‎3096 ピクセル4.92 MB24D:\Pictures\100ANDRO\20210314\DSC_0002.JPG‎4 mm標準
‎2021/‎02/‎04 ‏‎12:49‎5504 ピクセル‎3096 ピクセル6.65 MB24D:\Pictures\100ANDRO\20210314\DSC_0003.JPG‎4 mm標準
‎2021/‎02/‎04 ‏‎12:49‎5504 ピクセル‎3096 ピクセル1.81 MB24D:\Pictures\100ANDRO\20210314\DSC_0004.JPG‎4 mm標準
‎2021/‎02/‎04 ‏‎12:50‎5504 ピクセル‎3096 ピクセル6.94 MB24D:\Pictures\100ANDRO\20210314\DSC_0005.JPG‎4 mm標準
‎2021/‎02/‎04 ‏‎12:50‎5504 ピクセル‎3096 ピクセル6.57 MB24D:\Pictures\100ANDRO\20210314\DSC_0006.JPG‎4 mm標準
‎2021/‎02/‎04 ‏‎12:50‎5504 ピクセル‎3096 ピクセル5.40 MB24D:\Pictures\100ANDRO\20210314\DSC_0007.JPG‎4 mm標準
‎2021/‎02/‎04 ‏‎12:50‎5504 ピクセル‎3096 ピクセル5.45 MB24D:\Pictures\100ANDRO\20210314\DSC_0008.JPG‎4 mm標準
‎2021/‎02/‎04 ‏‎12:51‎5504 ピクセル‎3096 ピクセル1.95 MB24D:\Pictures\100ANDRO\20210314\DSC_0009.JPG‎4 mm標準
‎2021/‎02/‎05 ‏‎21:30‎5504 ピクセル‎3096 ピクセル4.35 MB24D:\Pictures\100ANDRO\20210314\DSC_0010.JPG‎4 mm標準
‎2021/‎02/‎08 ‏‎15:59‎5504 ピクセル‎3096 ピクセル4.61 MB24D:\Pictures\100ANDRO\20210314\DSC_0011.JPG‎4 mm標準
‎2021/‎02/‎08 ‏‎15:59‎5504 ピクセル‎3096 ピクセル4.64 MB24D:\Pictures\100ANDRO\20210314\DSC_0012.JPG‎4 mm標準
‎2021/‎02/‎08 ‏‎15:59‎5504 ピクセル‎3096 ピクセル2.55 MB24D:\Pictures\100ANDRO\20210314\DSC_0013.JPG‎4 mm標準
‎2021/‎02/‎08 ‏‎21:58‎5504 ピクセル‎3096 ピクセル4.16 MB24D:\Pictures\100ANDRO\20210314\DSC_0014.JPG‎4 mm標準
‎2021/‎02/‎08 ‏‎21:58‎5504 ピクセル‎3096 ピクセル4.41 MB24D:\Pictures\100ANDRO\20210314\DSC_0015.JPG‎4 mm標準
‎2021/‎02/‎08 ‏‎21:58‎5504 ピクセル‎3096 ピクセル4.30 MB24D:\Pictures\100ANDRO\20210314\DSC_0016.JPG‎4 mm標準
‎2021/‎02/‎08 ‏‎21:59‎5504 ピクセル‎3096 ピクセル4.38 MB24D:\Pictures\100ANDRO\20210314\DSC_0017.JPG‎4 mm標準
‎2021/‎02/‎09 ‏‎14:03‎5504 ピクセル‎3096 ピクセル4.51 MB24D:\Pictures\100ANDRO\20210314\DSC_0018.JPG‎4 mm標準
‎2021/‎02/‎09 ‏‎14:03‎5504 ピクセル‎3096 ピクセル4.27 MB24D:\Pictures\100ANDRO\20210314\DSC_0019.JPG‎4 mm標準
‎2021/‎02/‎09 ‏‎14:03‎5504 ピクセル‎3096 ピクセル4.23 MB24D:\Pictures\100ANDRO\20210314\DSC_0020.JPG‎4 mm標準
‎2021/‎02/‎09 ‏‎14:03‎5504 ピクセル‎3096 ピクセル4.29 MB24D:\Pictures\100ANDRO\20210314\DSC_0021.JPG‎4 mm標準
‎2021/‎02/‎09 ‏‎14:03‎5504 ピクセル‎3096 ピクセル4.25 MB24D:\Pictures\100ANDRO\20210314\DSC_0022.JPG‎4 mm標準
‎2021/‎02/‎09 ‏‎21:26‎5504 ピクセル‎3096 ピクセル4.25 MB24D:\Pictures\100ANDRO\20210314\DSC_0023.JPG‎4 mm標準
‎2021/‎02/‎09 ‏‎21:26‎5504 ピクセル‎3096 ピクセル4.41 MB24D:\Pictures\100ANDRO\20210314\DSC_0024.JPG‎4 mm標準
‎2021/‎02/‎12 ‏‎21:02‎5504 ピクセル‎3096 ピクセル3.99 MB24D:\Pictures\100ANDRO\20210314\DSC_0025.JPG‎4 mm標準
‎2021/‎02/‎12 ‏‎21:02‎5504 ピクセル‎3096 ピクセル4.62 MB24D:\Pictures\100ANDRO\20210314\DSC_0026.JPG‎4 mm標準
‎2021/‎02/‎12 ‏‎21:02‎5504 ピクセル‎3096 ピクセル4.05 MB24D:\Pictures\100ANDRO\20210314\DSC_0027.JPG‎4 mm標準
‎2021/‎02/‎12 ‏‎21:02‎5504 ピクセル‎3096 ピクセル4.24 MB24D:\Pictures\100ANDRO\20210314\DSC_0028.JPG‎4 mm標準
‎2021/‎02/‎12 ‏‎21:02‎5504 ピクセル‎3096 ピクセル3.78 MB24D:\Pictures\100ANDRO\20210314\DSC_0029.JPG‎4 mm標準
‎2021/‎02/‎12 ‏‎21:02‎5504 ピクセル‎3096 ピクセル4.12 MB24D:\Pictures\100ANDRO\20210314\DSC_0030.JPG‎4 mm標準
‎2021/‎02/‎12 ‏‎21:02‎5504 ピクセル‎3096 ピクセル3.93 MB24D:\Pictures\100ANDRO\20210314\DSC_0031.JPG‎4 mm標準
‎2021/‎02/‎12 ‏‎21:04‎5504 ピクセル‎3096 ピクセル3.92 MB24D:\Pictures\100ANDRO\20210314\DSC_0032.JPG‎4 mm標準
‎2021/‎02/‎12 ‏‎21:04‎5504 ピクセル‎3096 ピクセル4.07 MB24D:\Pictures\100ANDRO\20210314\DSC_0033.JPG‎4 mm標準
‎2021/‎02/‎12 ‏‎21:04‎5504 ピクセル‎3096 ピクセル4.38 MB24D:\Pictures\100ANDRO\20210314\DSC_0034.JPG‎4 mm標準
‎2021/‎02/‎14 ‏‎13:25‎5504 ピクセル‎3096 ピクセル7.17 MB24D:\Pictures\100ANDRO\20210314\DSC_0035.JPG‎4 mm標準
‎2021/‎02/‎14 ‏‎21:26‎5504 ピクセル‎3096 ピクセル5.35 MB24D:\Pictures\100ANDRO\20210314\DSC_0036.JPG‎4 mm標準
‎2021/‎02/‎14 ‏‎21:26‎5504 ピクセル‎3096 ピクセル5.29 MB24D:\Pictures\100ANDRO\20210314\DSC_0037.JPG‎4 mm標準
‎2021/‎02/‎14 ‏‎21:26‎3096 ピクセル‎5504 ピクセル5.51 MB24D:\Pictures\100ANDRO\20210314\DSC_0038.JPG‎4 mm90 度回転
‎2021/‎02/‎14 ‏‎21:26‎3096 ピクセル‎5504 ピクセル5.05 MB24D:\Pictures\100ANDRO\20210314\DSC_0039.JPG‎4 mm90 度回転
‎2021/‎02/‎14 ‏‎21:26‎3096 ピクセル‎5504 ピクセル5.33 MB24D:\Pictures\100ANDRO\20210314\DSC_0040.JPG‎4 mm90 度回転
‎2021/‎02/‎18 ‏‎15:56‎5504 ピクセル‎3096 ピクセル4.11 MB24D:\Pictures\100ANDRO\20210314\DSC_0041.JPG‎4 mm標準
‎2021/‎02/‎18 ‏‎15:56‎5504 ピクセル‎3096 ピクセル4.34 MB24D:\Pictures\100ANDRO\20210314\DSC_0042.JPG‎4 mm標準
‎2021/‎02/‎18 ‏‎15:56‎5504 ピクセル‎3096 ピクセル4.22 MB24D:\Pictures\100ANDRO\20210314\DSC_0043.JPG‎4 mm標準
‎2021/‎02/‎22 ‏‎15:18‎5504 ピクセル‎3096 ピクセル4.30 MB24D:\Pictures\100ANDRO\20210314\DSC_0044.JPG‎4 mm標準
‎2021/‎02/‎22 ‏‎15:18‎5504 ピクセル‎3096 ピクセル3.96 MB24D:\Pictures\100ANDRO\20210314\DSC_0045.JPG‎4 mm標準
‎2021/‎02/‎23 ‏‎15:13‎5504 ピクセル‎3096 ピクセル4.85 MB24D:\Pictures\100ANDRO\20210314\DSC_0046.JPG‎4 mm標準
‎2021/‎02/‎23 ‏‎15:13‎5504 ピクセル‎3096 ピクセル5.15 MB24D:\Pictures\100ANDRO\20210314\DSC_0047.JPG‎4 mm標準
‎2021/‎02/‎23 ‏‎15:27‎5504 ピクセル‎3096 ピクセル5.22 MB24D:\Pictures\100ANDRO\20210314\DSC_0048.JPG‎4 mm標準
‎2021/‎02/‎23 ‏‎15:27‎5504 ピクセル‎3096 ピクセル5.30 MB24D:\Pictures\100ANDRO\20210314\DSC_0049.JPG‎4 mm標準
‎2021/‎02/‎24 ‏‎11:38‎5504 ピクセル‎3096 ピクセル4.27 MB24D:\Pictures\100ANDRO\20210314\DSC_0050.JPG‎4 mm標準
‎2021/‎02/‎24 ‏‎11:38‎5504 ピクセル‎3096 ピクセル4.28 MB24D:\Pictures\100ANDRO\20210314\DSC_0051.JPG‎4 mm標準
‎2021/‎02/‎24 ‏‎11:38‎5504 ピクセル‎3096 ピクセル4.21 MB24D:\Pictures\100ANDRO\20210314\DSC_0052.JPG‎4 mm標準
‎2021/‎02/‎24 ‏‎11:45‎5504 ピクセル‎3096 ピクセル4.27 MB24D:\Pictures\100ANDRO\20210314\DSC_0053.JPG‎4 mm標準
‎2021/‎02/‎24 ‏‎11:45‎5504 ピクセル‎3096 ピクセル4.31 MB24D:\Pictures\100ANDRO\20210314\DSC_0054.JPG‎4 mm標準
‎2021/‎02/‎24 ‏‎11:45‎5504 ピクセル‎3096 ピクセル4.32 MB24D:\Pictures\100ANDRO\20210314\DSC_0055.JPG‎4 mm標準
‎2021/‎02/‎24 ‏‎11:45‎5504 ピクセル‎3096 ピクセル4.30 MB24D:\Pictures\100ANDRO\20210314\DSC_0056.JPG‎4 mm標準
‎2021/‎02/‎24 ‏‎12:08‎5504 ピクセル‎3096 ピクセル3.91 MB24D:\Pictures\100ANDRO\20210314\DSC_0057.JPG‎4 mm標準
‎2021/‎02/‎24 ‏‎12:08‎5504 ピクセル‎3096 ピクセル3.94 MB24D:\Pictures\100ANDRO\20210314\DSC_0058.JPG‎4 mm標準
‎2021/‎02/‎24 ‏‎12:08‎5504 ピクセル‎3096 ピクセル3.93 MB24D:\Pictures\100ANDRO\20210314\DSC_0059.JPG‎4 mm標準
‎2021/‎02/‎24 ‏‎12:08‎5504 ピクセル‎3096 ピクセル3.90 MB24D:\Pictures\100ANDRO\20210314\DSC_0060.JPG‎4 mm標準
‎2021/‎02/‎24 ‏‎12:08‎5504 ピクセル‎3096 ピクセル4.01 MB24D:\Pictures\100ANDRO\20210314\DSC_0061.JPG‎4 mm標準
‎2021/‎02/‎24 ‏‎12:08‎5504 ピクセル‎3096 ピクセル4.17 MB24D:\Pictures\100ANDRO\20210314\DSC_0062.JPG‎4 mm標準
‎2021/‎02/‎24 ‏‎12:14‎5504 ピクセル‎3096 ピクセル4.52 MB24D:\Pictures\100ANDRO\20210314\DSC_0063.JPG‎4 mm標準
‎2021/‎02/‎24 ‏‎12:14‎5504 ピクセル‎3096 ピクセル4.49 MB24D:\Pictures\100ANDRO\20210314\DSC_0064.JPG‎4 mm標準
‎2021/‎02/‎24 ‏‎12:15‎5504 ピクセル‎3096 ピクセル4.47 MB24D:\Pictures\100ANDRO\20210314\DSC_0065.JPG‎4 mm標準
‎2021/‎02/‎24 ‏‎12:15‎5504 ピクセル‎3096 ピクセル4.54 MB24D:\Pictures\100ANDRO\20210314\DSC_0066.JPG‎4 mm標準
‎2021/‎02/‎24 ‏‎16:18‎5504 ピクセル‎3096 ピクセル3.79 MB24D:\Pictures\100ANDRO\20210314\DSC_0067.JPG‎4 mm標準
‎2021/‎02/‎24 ‏‎16:18‎5504 ピクセル‎3096 ピクセル3.69 MB24D:\Pictures\100ANDRO\20210314\DSC_0068.JPG‎4 mm標準
‎2021/‎02/‎24 ‏‎16:18‎5504 ピクセル‎3096 ピクセル3.71 MB24D:\Pictures\100ANDRO\20210314\DSC_0069.JPG‎4 mm標準
‎2021/‎02/‎24 ‏‎16:18‎5504 ピクセル‎3096 ピクセル3.62 MB24D:\Pictures\100ANDRO\20210314\DSC_0070.JPG‎4 mm標準
‎2021/‎02/‎24 ‏‎16:18‎5504 ピクセル‎3096 ピクセル4.09 MB24D:\Pictures\100ANDRO\20210314\DSC_0071.JPG‎4 mm標準
‎2021/‎02/‎24 ‏‎16:18‎5504 ピクセル‎3096 ピクセル3.96 MB24D:\Pictures\100ANDRO\20210314\DSC_0072.JPG‎4 mm標準
‎2021/‎02/‎24 ‏‎16:18‎5504 ピクセル‎3096 ピクセル4.17 MB24D:\Pictures\100ANDRO\20210314\DSC_0073.JPG‎4 mm標準
‎2021/‎02/‎24 ‏‎16:18‎5504 ピクセル‎3096 ピクセル4.06 MB24D:\Pictures\100ANDRO\20210314\DSC_0074.JPG‎4 mm標準
‎2021/‎02/‎24 ‏‎16:18‎5504 ピクセル‎3096 ピクセル3.73 MB24D:\Pictures\100ANDRO\20210314\DSC_0075.JPG‎4 mm標準
‎2021/‎02/‎24 ‏‎16:20‎5504 ピクセル‎3096 ピクセル3.96 MB24D:\Pictures\100ANDRO\20210314\DSC_0076.JPG‎4 mm標準
‎2021/‎02/‎24 ‏‎16:20‎5504 ピクセル‎3096 ピクセル4.31 MB24D:\Pictures\100ANDRO\20210314\DSC_0077.JPG‎4 mm標準
‎2021/‎02/‎24 ‏‎16:20‎5504 ピクセル‎3096 ピクセル4.32 MB24D:\Pictures\100ANDRO\20210314\DSC_0078.JPG‎4 mm標準
‎2021/‎02/‎24 ‏‎16:20‎5504 ピクセル‎3096 ピクセル4.25 MB24D:\Pictures\100ANDRO\20210314\DSC_0079.JPG‎4 mm標準
‎2021/‎02/‎24 ‏‎16:20‎5504 ピクセル‎3096 ピクセル4.34 MB24D:\Pictures\100ANDRO\20210314\DSC_0080.JPG‎4 mm標準
‎2021/‎02/‎24 ‏‎16:20‎5504 ピクセル‎3096 ピクセル4.42 MB24D:\Pictures\100ANDRO\20210314\DSC_0081.JPG‎4 mm標準
‎2021/‎02/‎24 ‏‎22:01‎5504 ピクセル‎3096 ピクセル4.71 MB24D:\Pictures\100ANDRO\20210314\DSC_0082.JPG‎4 mm標準
‎2021/‎02/‎24 ‏‎22:01‎5504 ピクセル‎3096 ピクセル4.88 MB24D:\Pictures\100ANDRO\20210314\DSC_0083.JPG‎4 mm標準
‎2021/‎02/‎24 ‏‎22:01‎5504 ピクセル‎3096 ピクセル4.87 MB24D:\Pictures\100ANDRO\20210314\DSC_0084.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎15:25‎5504 ピクセル‎3096 ピクセル4.19 MB24D:\Pictures\100ANDRO\20210314\DSC_0085.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎15:25‎5504 ピクセル‎3096 ピクセル4.17 MB24D:\Pictures\100ANDRO\20210314\DSC_0086.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎15:25‎5504 ピクセル‎3096 ピクセル4.23 MB24D:\Pictures\100ANDRO\20210314\DSC_0087.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎15:25‎5504 ピクセル‎3096 ピクセル4.20 MB24D:\Pictures\100ANDRO\20210314\DSC_0088.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎15:25‎5504 ピクセル‎3096 ピクセル4.13 MB24D:\Pictures\100ANDRO\20210314\DSC_0089.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎15:25‎5504 ピクセル‎3096 ピクセル4.09 MB24D:\Pictures\100ANDRO\20210314\DSC_0090.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎15:25‎5504 ピクセル‎3096 ピクセル4.03 MB24D:\Pictures\100ANDRO\20210314\DSC_0091.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎15:25‎5504 ピクセル‎3096 ピクセル3.94 MB24D:\Pictures\100ANDRO\20210314\DSC_0092.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎15:25‎5504 ピクセル‎3096 ピクセル3.86 MB24D:\Pictures\100ANDRO\20210314\DSC_0093.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎15:25‎5504 ピクセル‎3096 ピクセル3.85 MB24D:\Pictures\100ANDRO\20210314\DSC_0094.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎15:25‎5504 ピクセル‎3096 ピクセル3.93 MB24D:\Pictures\100ANDRO\20210314\DSC_0095.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎15:25‎5504 ピクセル‎3096 ピクセル3.82 MB24D:\Pictures\100ANDRO\20210314\DSC_0096.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎15:25‎5504 ピクセル‎3096 ピクセル3.90 MB24D:\Pictures\100ANDRO\20210314\DSC_0097.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎15:25‎5504 ピクセル‎3096 ピクセル3.96 MB24D:\Pictures\100ANDRO\20210314\DSC_0098.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎15:25‎5504 ピクセル‎3096 ピクセル3.94 MB24D:\Pictures\100ANDRO\20210314\DSC_0099.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎20:52‎5504 ピクセル‎3096 ピクセル5.09 MB24D:\Pictures\100ANDRO\20210314\DSC_0100.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎20:52‎5504 ピクセル‎3096 ピクセル5.02 MB24D:\Pictures\100ANDRO\20210314\DSC_0101.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎20:52‎5504 ピクセル‎3096 ピクセル5.07 MB24D:\Pictures\100ANDRO\20210314\DSC_0102.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎20:52‎5504 ピクセル‎3096 ピクセル4.89 MB24D:\Pictures\100ANDRO\20210314\DSC_0103.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎20:52‎5504 ピクセル‎3096 ピクセル4.87 MB24D:\Pictures\100ANDRO\20210314\DSC_0104.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎20:52‎5504 ピクセル‎3096 ピクセル4.66 MB24D:\Pictures\100ANDRO\20210314\DSC_0105.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎20:52‎5504 ピクセル‎3096 ピクセル4.68 MB24D:\Pictures\100ANDRO\20210314\DSC_0106.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎20:52‎5504 ピクセル‎3096 ピクセル4.36 MB24D:\Pictures\100ANDRO\20210314\DSC_0107.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎20:52‎5504 ピクセル‎3096 ピクセル4.58 MB24D:\Pictures\100ANDRO\20210314\DSC_0108.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎20:52‎5504 ピクセル‎3096 ピクセル4.40 MB24D:\Pictures\100ANDRO\20210314\DSC_0109.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎20:52‎5504 ピクセル‎3096 ピクセル4.44 MB24D:\Pictures\100ANDRO\20210314\DSC_0110.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎20:52‎5504 ピクセル‎3096 ピクセル4.60 MB24D:\Pictures\100ANDRO\20210314\DSC_0111.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎20:52‎5504 ピクセル‎3096 ピクセル4.49 MB24D:\Pictures\100ANDRO\20210314\DSC_0112.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎21:04‎5504 ピクセル‎3096 ピクセル4.33 MB24D:\Pictures\100ANDRO\20210314\DSC_0113.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎21:04‎5504 ピクセル‎3096 ピクセル4.35 MB24D:\Pictures\100ANDRO\20210314\DSC_0114.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎21:04‎5504 ピクセル‎3096 ピクセル4.34 MB24D:\Pictures\100ANDRO\20210314\DSC_0115.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎21:04‎5504 ピクセル‎3096 ピクセル4.28 MB24D:\Pictures\100ANDRO\20210314\DSC_0116.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎21:04‎5504 ピクセル‎3096 ピクセル4.31 MB24D:\Pictures\100ANDRO\20210314\DSC_0117.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎21:04‎5504 ピクセル‎3096 ピクセル4.48 MB24D:\Pictures\100ANDRO\20210314\DSC_0118.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎21:04‎5504 ピクセル‎3096 ピクセル4.41 MB24D:\Pictures\100ANDRO\20210314\DSC_0119.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎21:04‎5504 ピクセル‎3096 ピクセル4.37 MB24D:\Pictures\100ANDRO\20210314\DSC_0120.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎21:04‎5504 ピクセル‎3096 ピクセル4.52 MB24D:\Pictures\100ANDRO\20210314\DSC_0121.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎21:04‎5504 ピクセル‎3096 ピクセル4.44 MB24D:\Pictures\100ANDRO\20210314\DSC_0122.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎21:04‎5504 ピクセル‎3096 ピクセル4.49 MB24D:\Pictures\100ANDRO\20210314\DSC_0123.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎21:04‎5504 ピクセル‎3096 ピクセル4.36 MB24D:\Pictures\100ANDRO\20210314\DSC_0124.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎22:07‎5504 ピクセル‎3096 ピクセル4.05 MB24D:\Pictures\100ANDRO\20210314\DSC_0125.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎22:08‎5504 ピクセル‎3096 ピクセル4.22 MB24D:\Pictures\100ANDRO\20210314\DSC_0126.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎22:08‎5504 ピクセル‎3096 ピクセル4.91 MB24D:\Pictures\100ANDRO\20210314\DSC_0127.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎22:08‎5504 ピクセル‎3096 ピクセル3.99 MB24D:\Pictures\100ANDRO\20210314\DSC_0128.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎22:08‎5504 ピクセル‎3096 ピクセル3.22 MB24D:\Pictures\100ANDRO\20210314\DSC_0129.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎22:08‎5504 ピクセル‎3096 ピクセル3.19 MB24D:\Pictures\100ANDRO\20210314\DSC_0130.JPG‎4 mm標準
‎2021/‎02/‎26 ‏‎22:08‎5504 ピクセル‎3096 ピクセル3.17 MB24D:\Pictures\100ANDRO\20210314\DSC_0131.JPG‎4 mm標準
‎2021/‎02/‎27 ‏‎13:52‎5504 ピクセル‎3096 ピクセル2.41 MB24D:\Pictures\100ANDRO\20210314\DSC_0132.JPG‎4 mm標準
‎2021/‎02/‎27 ‏‎13:52‎5504 ピクセル‎3096 ピクセル2.38 MB24D:\Pictures\100ANDRO\20210314\DSC_0133.JPG‎4 mm標準
‎2021/‎02/‎27 ‏‎13:52‎5504 ピクセル‎3096 ピクセル2.41 MB24D:\Pictures\100ANDRO\20210314\DSC_0134.JPG‎4 mm標準
‎2021/‎02/‎27 ‏‎13:52‎5504 ピクセル‎3096 ピクセル2.38 MB24D:\Pictures\100ANDRO\20210314\DSC_0135.JPG‎4 mm標準
‎2021/‎02/‎27 ‏‎13:52‎5504 ピクセル‎3096 ピクセル2.38 MB24D:\Pictures\100ANDRO\20210314\DSC_0136.JPG‎4 mm標準
‎2021/‎02/‎27 ‏‎13:52‎5504 ピクセル‎3096 ピクセル2.37 MB24D:\Pictures\100ANDRO\20210314\DSC_0137.JPG‎4 mm標準
‎2021/‎02/‎27 ‏‎13:52‎5504 ピクセル‎3096 ピクセル2.39 MB24D:\Pictures\100ANDRO\20210314\DSC_0138.JPG‎4 mm標準
‎2021/‎03/‎01 ‏‎20:58‎5504 ピクセル‎3096 ピクセル4.47 MB24D:\Pictures\100ANDRO\20210314\DSC_0139.JPG‎4 mm標準
‎2021/‎03/‎01 ‏‎20:58‎5504 ピクセル‎3096 ピクセル4.42 MB24D:\Pictures\100ANDRO\20210314\DSC_0140.JPG‎4 mm標準
‎2021/‎03/‎01 ‏‎20:58‎5504 ピクセル‎3096 ピクセル4.35 MB24D:\Pictures\100ANDRO\20210314\DSC_0141.JPG‎4 mm標準
‎2021/‎03/‎01 ‏‎20:58‎5504 ピクセル‎3096 ピクセル4.34 MB24D:\Pictures\100ANDRO\20210314\DSC_0142.JPG‎4 mm標準
‎2021/‎03/‎01 ‏‎20:58‎5504 ピクセル‎3096 ピクセル4.63 MB24D:\Pictures\100ANDRO\20210314\DSC_0143.JPG‎4 mm標準
‎2021/‎03/‎01 ‏‎20:58‎5504 ピクセル‎3096 ピクセル4.78 MB24D:\Pictures\100ANDRO\20210314\DSC_0144.JPG‎4 mm標準
‎2021/‎03/‎01 ‏‎20:58‎5504 ピクセル‎3096 ピクセル4.67 MB24D:\Pictures\100ANDRO\20210314\DSC_0145.JPG‎4 mm標準
‎2021/‎03/‎02 ‏‎13:07‎5504 ピクセル‎3096 ピクセル2.19 MB24D:\Pictures\100ANDRO\20210314\DSC_0146.JPG‎4 mm標準
‎2021/‎03/‎02 ‏‎13:07‎5504 ピクセル‎3096 ピクセル2.20 MB24D:\Pictures\100ANDRO\20210314\DSC_0147.JPG‎4 mm標準
‎2021/‎03/‎02 ‏‎13:07‎5504 ピクセル‎3096 ピクセル2.20 MB24D:\Pictures\100ANDRO\20210314\DSC_0148.JPG‎4 mm標準
‎2021/‎03/‎02 ‏‎13:07‎5504 ピクセル‎3096 ピクセル2.20 MB24D:\Pictures\100ANDRO\20210314\DSC_0149.JPG‎4 mm標準
‎2021/‎03/‎02 ‏‎13:07‎5504 ピクセル‎3096 ピクセル2.20 MB24D:\Pictures\100ANDRO\20210314\DSC_0150.JPG‎4 mm標準
‎2021/‎03/‎02 ‏‎13:07‎5504 ピクセル‎3096 ピクセル2.20 MB24D:\Pictures\100ANDRO\20210314\DSC_0151.JPG‎4 mm標準
‎2021/‎03/‎02 ‏‎13:07‎5504 ピクセル‎3096 ピクセル2.21 MB24D:\Pictures\100ANDRO\20210314\DSC_0152.JPG‎4 mm標準
‎2021/‎03/‎02 ‏‎13:07‎5504 ピクセル‎3096 ピクセル2.21 MB24D:\Pictures\100ANDRO\20210314\DSC_0153.JPG‎4 mm標準
‎2021/‎03/‎02 ‏‎13:07‎5504 ピクセル‎3096 ピクセル2.22 MB24D:\Pictures\100ANDRO\20210314\DSC_0154.JPG‎4 mm標準
‎2021/‎03/‎02 ‏‎13:07‎5504 ピクセル‎3096 ピクセル2.22 MB24D:\Pictures\100ANDRO\20210314\DSC_0155.JPG‎4 mm標準
‎2021/‎03/‎03 ‏‎16:04‎5504 ピクセル‎3096 ピクセル4.20 MB24D:\Pictures\100ANDRO\20210314\DSC_0157.JPG‎4 mm標準
‎2021/‎03/‎03 ‏‎16:04‎5504 ピクセル‎3096 ピクセル4.42 MB24D:\Pictures\100ANDRO\20210314\DSC_0158.JPG‎4 mm標準
‎2021/‎03/‎04 ‏‎21:47‎5504 ピクセル‎3096 ピクセル4.75 MB24D:\Pictures\100ANDRO\20210314\DSC_0160.JPG‎4 mm標準
‎2021/‎03/‎04 ‏‎21:47‎5504 ピクセル‎3096 ピクセル4.82 MB24D:\Pictures\100ANDRO\20210314\DSC_0161.JPG‎4 mm標準
‎2021/‎03/‎04 ‏‎21:47‎5504 ピクセル‎3096 ピクセル2.97 MB24D:\Pictures\100ANDRO\20210314\DSC_0162.JPG‎4 mm標準
‎2021/‎03/‎04 ‏‎21:47‎5504 ピクセル‎3096 ピクセル3.00 MB24D:\Pictures\100ANDRO\20210314\DSC_0163.JPG‎4 mm標準
‎2021/‎03/‎04 ‏‎21:47‎5504 ピクセル‎3096 ピクセル3.04 MB24D:\Pictures\100ANDRO\20210314\DSC_0164.JPG‎4 mm標準
‎2021/‎03/‎04 ‏‎21:47‎5504 ピクセル‎3096 ピクセル3.14 MB24D:\Pictures\100ANDRO\20210314\DSC_0165.JPG‎4 mm標準
‎2021/‎03/‎04 ‏‎21:47‎5504 ピクセル‎3096 ピクセル3.14 MB24D:\Pictures\100ANDRO\20210314\DSC_0166.JPG‎4 mm標準
‎2021/‎03/‎04 ‏‎21:47‎5504 ピクセル‎3096 ピクセル2.96 MB24D:\Pictures\100ANDRO\20210314\DSC_0167.JPG‎4 mm標準
‎2021/‎03/‎04 ‏‎21:47‎5504 ピクセル‎3096 ピクセル3.03 MB24D:\Pictures\100ANDRO\20210314\DSC_0168.JPG‎4 mm標準
‎2021/‎03/‎04 ‏‎21:47‎5504 ピクセル‎3096 ピクセル3.11 MB24D:\Pictures\100ANDRO\20210314\DSC_0169.JPG‎4 mm標準
‎2021/‎03/‎04 ‏‎21:47‎5504 ピクセル‎3096 ピクセル3.29 MB24D:\Pictures\100ANDRO\20210314\DSC_0170.JPG‎4 mm標準
‎2021/‎03/‎04 ‏‎21:47‎5504 ピクセル‎3096 ピクセル3.17 MB24D:\Pictures\100ANDRO\20210314\DSC_0171.JPG‎4 mm標準
‎2021/‎03/‎04 ‏‎21:47‎5504 ピクセル‎3096 ピクセル3.11 MB24D:\Pictures\100ANDRO\20210314\DSC_0172.JPG‎4 mm標準
‎2021/‎03/‎04 ‏‎21:47‎5504 ピクセル‎3096 ピクセル3.04 MB24D:\Pictures\100ANDRO\20210314\DSC_0173.JPG‎4 mm標準
‎2021/‎03/‎04 ‏‎21:47‎5504 ピクセル‎3096 ピクセル3.12 MB24D:\Pictures\100ANDRO\20210314\DSC_0174.JPG‎4 mm標準
‎2021/‎03/‎04 ‏‎21:47‎5504 ピクセル‎3096 ピクセル3.19 MB24D:\Pictures\100ANDRO\20210314\DSC_0175.JPG‎4 mm標準
‎2021/‎03/‎04 ‏‎21:47‎5504 ピクセル‎3096 ピクセル3.31 MB24D:\Pictures\100ANDRO\20210314\DSC_0176.JPG‎4 mm標準
‎2021/‎03/‎07 ‏‎15:42‎5504 ピクセル‎3096 ピクセル6.75 MB24D:\Pictures\100ANDRO\20210314\DSC_0177.JPG‎4 mm標準
‎2021/‎03/‎08 ‏‎14:39‎5504 ピクセル‎3096 ピクセル1.90 MB24D:\Pictures\100ANDRO\20210314\DSC_0178.JPG‎4 mm標準
‎2021/‎03/‎08 ‏‎14:39‎5504 ピクセル‎3096 ピクセル1.99 MB24D:\Pictures\100ANDRO\20210314\DSC_0179.JPG‎4 mm標準
‎2021/‎03/‎08 ‏‎22:07‎5504 ピクセル‎3096 ピクセル4.25 MB24D:\Pictures\100ANDRO\20210314\DSC_0180.JPG‎4 mm標準
‎2021/‎03/‎08 ‏‎22:07‎5504 ピクセル‎3096 ピクセル4.20 MB24D:\Pictures\100ANDRO\20210314\DSC_0181.JPG‎4 mm標準
‎2021/‎03/‎08 ‏‎22:07‎5504 ピクセル‎3096 ピクセル4.20 MB24D:\Pictures\100ANDRO\20210314\DSC_0182.JPG‎4 mm標準
‎2021/‎03/‎08 ‏‎22:07‎5504 ピクセル‎3096 ピクセル4.19 MB24D:\Pictures\100ANDRO\20210314\DSC_0183.JPG‎4 mm標準
‎2021/‎03/‎08 ‏‎22:08‎5504 ピクセル‎3096 ピクセル4.21 MB24D:\Pictures\100ANDRO\20210314\DSC_0184.JPG‎4 mm標準
‎2021/‎03/‎08 ‏‎22:08‎5504 ピクセル‎3096 ピクセル4.23 MB24D:\Pictures\100ANDRO\20210314\DSC_0185.JPG‎4 mm標準
‎2021/‎03/‎08 ‏‎22:08‎5504 ピクセル‎3096 ピクセル4.19 MB24D:\Pictures\100ANDRO\20210314\DSC_0186.JPG‎4 mm標準
‎2021/‎03/‎08 ‏‎22:08‎5504 ピクセル‎3096 ピクセル4.16 MB24D:\Pictures\100ANDRO\20210314\DSC_0187.JPG‎4 mm標準
‎2021/‎03/‎08 ‏‎22:08‎5504 ピクセル‎3096 ピクセル4.16 MB24D:\Pictures\100ANDRO\20210314\DSC_0188.JPG‎4 mm標準
‎2021/‎03/‎08 ‏‎22:08‎5504 ピクセル‎3096 ピクセル4.15 MB24D:\Pictures\100ANDRO\20210314\DSC_0189.JPG‎4 mm標準
‎2021/‎03/‎08 ‏‎22:08‎5504 ピクセル‎3096 ピクセル4.26 MB24D:\Pictures\100ANDRO\20210314\DSC_0190.JPG‎4 mm標準
‎2021/‎03/‎13 ‏‎12:04‎5504 ピクセル‎3096 ピクセル5.23 MB24D:\Pictures\100ANDRO\20210314\DSC_0191.JPG‎4 mm180 度回転
‎2021/‎03/‎13 ‏‎12:04‎5504 ピクセル‎3096 ピクセル5.37 MB24D:\Pictures\100ANDRO\20210314\DSC_0192.JPG‎4 mm180 度回転
‎2021/‎03/‎13 ‏‎12:04‎5504 ピクセル‎3096 ピクセル5.38 MB24D:\Pictures\100ANDRO\20210314\DSC_0193.JPG‎4 mm180 度回転
‎2021/‎03/‎13 ‏‎12:05‎3096 ピクセル‎5504 ピクセル5.10 MB24D:\Pictures\100ANDRO\20210314\DSC_0194.JPG‎4 mm270 度回転
‎2021/‎03/‎13 ‏‎12:05‎3096 ピクセル‎5504 ピクセル5.08 MB24D:\Pictures\100ANDRO\20210314\DSC_0195.JPG‎4 mm270 度回転
‎2021/‎03/‎13 ‏‎12:05‎3096 ピクセル‎5504 ピクセル5.13 MB24D:\Pictures\100ANDRO\20210314\DSC_0196.JPG‎4 mm270 度回転
‎2021/‎03/‎13 ‏‎12:05‎3096 ピクセル‎5504 ピクセル5.11 MB24D:\Pictures\100ANDRO\20210314\DSC_0197.JPG‎4 mm270 度回転
‎2021/‎03/‎13 ‏‎12:05‎3096 ピクセル‎5504 ピクセル5.11 MB24D:\Pictures\100ANDRO\20210314\DSC_0198.JPG‎4 mm270 度回転
‎2021/‎03/‎13 ‏‎12:05‎3096 ピクセル‎5504 ピクセル5.14 MB24D:\Pictures\100ANDRO\20210314\DSC_0199.JPG‎4 mm270 度回転
‎2021/‎03/‎13 ‏‎12:20‎5504 ピクセル‎3096 ピクセル5.20 MB24D:\Pictures\100ANDRO\20210314\DSC_0200.JPG‎4 mm標準
‎2021/‎03/‎13 ‏‎12:20‎5504 ピクセル‎3096 ピクセル5.18 MB24D:\Pictures\100ANDRO\20210314\DSC_0201.JPG‎4 mm標準
‎2021/‎03/‎13 ‏‎12:20‎5504 ピクセル‎3096 ピクセル2.83 MB24D:\Pictures\100ANDRO\20210314\DSC_0202.JPG‎4 mm標準
‎2021/‎03/‎13 ‏‎12:20‎5504 ピクセル‎3096 ピクセル2.84 MB24D:\Pictures\100ANDRO\20210314\DSC_0203.JPG‎4 mm標準
‎2021/‎03/‎13 ‏‎12:20‎5504 ピクセル‎3096 ピクセル2.99 MB24D:\Pictures\100ANDRO\20210314\DSC_0204.JPG‎4 mm標準
‎2021/‎03/‎13 ‏‎12:20‎5504 ピクセル‎3096 ピクセル2.93 MB24D:\Pictures\100ANDRO\20210314\DSC_0205.JPG‎4 mm標準
‎2021/‎03/‎13 ‏‎12:20‎5504 ピクセル‎3096 ピクセル2.75 MB24D:\Pictures\100ANDRO\20210314\DSC_0206.JPG‎4 mm標準
‎2021/‎03/‎13 ‏‎12:20‎5504 ピクセル‎3096 ピクセル2.99 MB24D:\Pictures\100ANDRO\20210314\DSC_0207.JPG‎4 mm標準

歌ネットから歌詞を取得してテキストファイルに保存

CONST ssfDesktop = 0

DIM IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.Visible = TRUE
IE.Navigate("https://www.uta-net.com/song/280568/")
BusyWait(IE)

DIM element, elements, name, lyrics

element = IE.document.getElementById("view_kashi")
elements = element.getElementsByClassName("title")
name = TRIM(elements.Item(0).innerText)

element = IE.document.getElementById("kashi_area")
lyrics = element.innerText

IE.Quit

DIM Shell = CREATEOLEOBJ("Shell.Application")
DIM Folder = Shell.NameSpace(ssfDesktop)
DIM path = Folder.Self.Path
DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
path = uniqueFilename(FSO.BuildPath(path, name + ".txt"))

DIM FID = FOPEN(path, F_READ OR F_WRITE)
FPUT(FID, lyrics)
FCLOSE(FID)

//////////////////////////////////////////////////
// 【引数】
//   IE : IEオブジェクト 
// 【戻値】
// 
//////////////////////////////////////////////////
PROCEDURE BusyWait(Var IE)
	SLEEP(0.500)
	DIM t = GETTIME()
	TRY
		REPEAT
			DIM tm = GETTIME() - t
			FUKIDASI("BusyWait:" + tm)
			SLEEP(0.010)
			IF tm >= 60 THEN BREAK
		UNTIL !IE.Busy AND IE.readyState = 4
	EXCEPT
		IE = getIEObj(-1)
		PRINT IE.document.URL + " のIEオブジェクトを取得しました。"
		BusyWait(IE)
	ENDTRY
	FUKIDASI()
FEND

//////////////////////////////////////////////////
// 【引数】
//   文字列 or 数値 : 取得したいIEオブジェクトのタイトル・URLもしくは数値を指定 
//   完全一致フラグ : (TRUE : 文字列が完全一致したものを取得、FALSE : 文字列の一部を含むものを取得) 
// 【戻値】
//   Internet Explorerオブジェクト 
//////////////////////////////////////////////////
FUNCTION getIEObj(str, flg = FALSE)
	DIM Shell = CREATEOLEOBJ("Shell.Application")
	SELECT CHKNUM(str)
		CASE TRUE
			DIM cnt = 0
			SELECT TRUE
				CASE str > 0
					FOR n = 0 TO Shell.Windows.Count - 1
						TRY
							IFB Shell.Windows.Item(n).Name = "Internet Explorer" THEN
								cnt = cnt + 1
								IFB str = cnt THEN
									RESULT = Shell.Windows.Item(n)
									EXIT
								ENDIF
							ENDIF
						EXCEPT
						ENDTRY
					NEXT
				CASE str < 0
					FOR n = Shell.Windows.Count - 1 TO 0 STEP -1
						TRY
							IFB Shell.Windows.Item(n).Name = "Internet Explorer" THEN
								cnt = cnt + 1
								IFB ABS(str) = cnt THEN
									RESULT = Shell.Windows.Item(n)
									EXIT
								ENDIF
							ENDIF
						EXCEPT
						ENDTRY
					NEXT
				CASE str = 0
					FOR n = 0 TO Shell.Windows.Count - 1
						TRY
							IF Shell.Windows.Item(n).Name = "Internet Explorer" THEN cnt = cnt + 1
						EXCEPT
						ENDTRY
					NEXT
					RESULT = cnt
					EXIT
			SELEND
		CASE FALSE
			DIM t = GETTIME()
			REPEAT
				FOR n = 0 TO Shell.Windows.Count - 1
					TRY
						DIM targetObj = Shell.Windows.Item(n)
						IFB targetObj.Name = "Internet Explorer" THEN
							SELECT flg
								CASE TRUE
									IFB targetObj.document.title = str OR targetObj.LocationURL = str THEN
										RESULT = Shell.Windows.Item(n)
										EXIT
									ENDIF
								CASE FALSE
									IFB POS(str, targetObj.document.title) OR POS(str, targetObj.LocationURL) THEN
										RESULT = Shell.Windows.Item(n)
										EXIT
									ENDIF
							SELEND
						ENDIF
					EXCEPT
					ENDTRY
				NEXT
			UNTIL GETTIME() - t >= 5
	SELEND
	RESULT = ERR_VALUE
FEND

//////////////////////////////////////////////////
// 【引数】
//   path : ファイルのパス 
// 【戻値】
//   重複しないファイル名 
//////////////////////////////////////////////////
FUNCTION uniqueFilename(path)
	DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
	IFB FSO.FileExists(path) THEN
		DIM fol = FSO.GetParentFolderName(path)
		DIM filename = FSO.GetBaseName(path)
		DIM extension = FSO.GetExtensionName(path)
		DIM i = 2
		WHILE FSO.FileExists(FSO.BuildPath(fol, filename + " (" + i + ")." + extension))
			i = i + 1
		WEND
		RESULT = FSO.BuildPath(fol, filename + " (" + i + ")." + extension)
	ELSE
		RESULT = path
	ENDIF
FEND

楽天銀行定期預金の金利をExcelに保存

DIM IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.Visible = TRUE
IE.Navigate("https://rbweb.rakuten-bank.co.jp/REF/main/fis/BasicTimeDepositInterestRate.html?PageID=BasicTimeDepositInterestRatePresentationLogicBean")
BusyWait(IE)

DIM elements = IE.document.getElementsByTagName("table")
DIM element = elements.Item(0)
DIM arr[-1][-1]

getTableData(element, arr)

IE.Quit

DIM Excel = XLOPEN()
XLSETDATA(Excel, arr, "A1")

DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
DIM path = uniqueFilename(FSO.BuildPath(GET_CUR_DIR, "楽天銀行定期預金金利.xlsx"))
XLCLOSE(Excel, path)

//////////////////////////////////////////////////
// 【引数】
//   IE : IEオブジェクト 
// 【戻値】
// 
//////////////////////////////////////////////////
PROCEDURE BusyWait(Var IE)
	SLEEP(0.500)
	DIM t = GETTIME()
	TRY
		REPEAT
			DIM tm = GETTIME() - t
			FUKIDASI("BusyWait:" + tm)
			SLEEP(0.010)
			IF tm >= 60 THEN BREAK
		UNTIL !IE.Busy AND IE.readyState = 4
	EXCEPT
		IE = getIEObj(-1)
		PRINT IE.document.URL + " のIEオブジェクトを取得しました。"
		BusyWait(IE)
	ENDTRY
	FUKIDASI()
FEND

//////////////////////////////////////////////////
// 【引数】
//   文字列 or 数値 : 取得したいIEオブジェクトのタイトル・URLもしくは数値を指定 
//   完全一致フラグ : (TRUE : 文字列が完全一致したものを取得、FALSE : 文字列の一部を含むものを取得) 
// 【戻値】
//   Internet Explorerオブジェクト 
//////////////////////////////////////////////////
FUNCTION getIEObj(str, flg = FALSE)
	DIM Shell = CREATEOLEOBJ("Shell.Application")
	SELECT CHKNUM(str)
		CASE TRUE
			DIM cnt = 0
			SELECT TRUE
				CASE str > 0
					FOR n = 0 TO Shell.Windows.Count - 1
						TRY
							IFB Shell.Windows.Item(n).Name = "Internet Explorer" THEN
								cnt = cnt + 1
								IFB str = cnt THEN
									RESULT = Shell.Windows.Item(n)
									EXIT
								ENDIF
							ENDIF
						EXCEPT
						ENDTRY
					NEXT
				CASE str < 0
					FOR n = Shell.Windows.Count - 1 TO 0 STEP -1
						TRY
							IFB Shell.Windows.Item(n).Name = "Internet Explorer" THEN
								cnt = cnt + 1
								IFB ABS(str) = cnt THEN
									RESULT = Shell.Windows.Item(n)
									EXIT
								ENDIF
							ENDIF
						EXCEPT
						ENDTRY
					NEXT
				CASE str = 0
					FOR n = 0 TO Shell.Windows.Count - 1
						TRY
							IF Shell.Windows.Item(n).Name = "Internet Explorer" THEN cnt = cnt + 1
						EXCEPT
						ENDTRY
					NEXT
					RESULT = cnt
					EXIT
			SELEND
		CASE FALSE
			DIM t = GETTIME()
			REPEAT
				FOR n = 0 TO Shell.Windows.Count - 1
					TRY
						DIM targetObj = Shell.Windows.Item(n)
						IFB targetObj.Name = "Internet Explorer" THEN
							SELECT flg
								CASE TRUE
									IFB targetObj.document.title = str OR targetObj.LocationURL = str THEN
										RESULT = Shell.Windows.Item(n)
										EXIT
									ENDIF
								CASE FALSE
									IFB POS(str, targetObj.document.title) OR POS(str, targetObj.LocationURL) THEN
										RESULT = Shell.Windows.Item(n)
										EXIT
									ENDIF
							SELEND
						ENDIF
					EXCEPT
					ENDTRY
				NEXT
			UNTIL GETTIME() - t >= 5
	SELEND
	RESULT = ERR_VALUE
FEND

//////////////////////////////////////////////////
// 【引数】
//   table : tableエレメント 
//   arr : 取得したデータを格納する配列(参照引数) 
// 【戻値】
// 
//////////////////////////////////////////////////
PROCEDURE getTableData(table, Var arr[][])
	rowMax = table.rows.length - 1
	colMax = 0
	FOR row = 0 TO table.rows.length - 1
		IFB table.rows(row).cells.length - 1 > colMax THEN
			colMax = table.rows(row).cells.length - 1
		ENDIF
	NEXT
	DIM arr[rowMax][colMax]
	FOR row = 0 TO table.rows.length - 1
		FOR col = 0 TO table.rows(row).cells.length - 1
			n = 0
			WHILE arr[row][col + n] <> ""
				n = n + 1
			WEND
			arr[row][col + n] = table.rows(row).cells(col).innerText
			// rowSpan(行結合)とcolSpan(列結合)の両方があれば
			IFB table.rows(row).cells(col).rowSpan > 1 AND table.rows(row).cells(col).colSpan > 1 THEN
				rmax = table.rows(row).cells(col).rowSpan - 1
				cmax = table.rows(row).cells(col).colSpan - 1
				FOR r = 1 TO rmax
					FOR c = 1 TO cmax
						arr[row + r][col + c] = "←"
					NEXT
				NEXT
			ENDIF
			// rowSpan(行結合)があれば結合セルに「↑」を代入
			IFB table.rows(row).cells(col).rowSpan > 1 THEN
				n = table.rows(row).cells(col).rowSpan - 1
				WHILE n
					arr[row + n][col] = "↑"
					n = n - 1
				WEND
			ENDIF
			// colSpan(列結合)があれば結合セルに「←」を代入
			IFB table.rows(row).cells(col).colSpan > 1 THEN
				n = table.rows(row).cells(col).colSpan - 1
				WHILE n
					arr[row][col + n] = "←"
					n = n - 1
				WEND
			ENDIF
		NEXT
	NEXT
FEND

//////////////////////////////////////////////////
// 【引数】
//   path : ファイルのパス 
// 【戻値】
//   重複しないファイル名 
//////////////////////////////////////////////////
FUNCTION uniqueFilename(path)
	DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
	IFB FSO.FileExists(path) THEN
		DIM fol = FSO.GetParentFolderName(path)
		DIM filename = FSO.GetBaseName(path)
		DIM extension = FSO.GetExtensionName(path)
		DIM i = 2
		WHILE FSO.FileExists(FSO.BuildPath(fol, filename + " (" + i + ")." + extension))
			i = i + 1
		WEND
		RESULT = FSO.BuildPath(fol, filename + " (" + i + ")." + extension)
	ELSE
		RESULT = path
	ENDIF
FEND