CSVで取れます。
ここから日本円での損益を簡単に計算するサービスはないものか
ExcelVBA ThisWorkbook.RefleshAllで更新待ちしてくれない対策
サンプル。指定シートの更新を行ってから待つ
クラス CQtEvents
Option Explicit Private WithEvents mQryTble As QueryTable Private mRefreshed As Boolean Private mCallback As String Public Property Set QryTble(ByVal QryTable As QueryTable): Set mQryTble = QryTable: End Property Public Property Get QryTble() As QueryTable: Set QryTble = mQryTble: End Property Public Property Let Refreshed(ByVal paramRefreshed As Boolean): mRefreshed = paramRefreshed: End Property Public Property Get Refreshed() As Boolean: Refreshed = mRefreshed: End Property Public Property Let Callback(ByVal SpecifiedProcName): mCallback = SpecifiedProcName: End Property Private Sub Class_Initialize() mRefreshed = False End Sub Private Sub mQryTble_BeforeRefresh(Cancel As Boolean) mRefreshed = False Debug.Print "*** mQryTble_BeforeRefresh(): Refreshed=" & Refreshed End Sub Private Sub mQryTble_AfterRefresh(ByVal Success As Boolean) mRefreshed = True Debug.Print "*** mQryTble_AfterRefresh(): Refreshed=" & Refreshed, "Success=" & Success If mCallback <> "" Then Application.Run mCallback, Success End Sub
メインコード
Dim TargetTable As ListObject: Set TargetTable = Sheets("hogehoge").ListObjects(1) TargetTable.DataBodyRange.Rows.Delete ' いったんテーブルのデータを全てクリア Dim TargetQueryTable As QueryTable: Set TargetQueryTable = TargetTable.QueryTable Dim classQtEvents As CQtEvents: Set classQtEvents = New CQtEvents Set classQtEvents.QryTble = TargetQueryTable Dim BeforeTime: BeforeTime = Timer Debug.Print "[Before] TargetQueryTable.Refreshing:" & TargetQueryTable.Refreshing, "Rows.Count: " & TargetTable.Range.Rows.Count classQtEvents.QryTble.Refresh BackgroundQuery:=False ' クエリ更新を待つ 'Debug.Print "[After] TargetQueryTable.Refreshing:" & TargetQueryTable.Refreshing, "Rows.Count: " & TargetTable.Range.Rows.Count 'Debug.Print "[Completed] " & Format(Timer - BeforeTime, "00:00:00.000")
ネタ元
ExcelVBAでテキストファイルを比較
'テキストファイルの比較 '同じならTrue / 違うなら False Function DiffTxtFile(aFilepath1 As String, aFilepath2 As String) As Boolean DiffTxtFile = True ' 機能:2つのテキストファイルを比較する ' 【変数定義】 Dim file1(1) As String ' ファイル名(フルパス) Dim file2(1) As String ' ファイル名 Dim nFNO(1) As Integer 'ファイル番号 Dim buf(1) As String ' テキスト読み出し用バッファ Dim line_no(1) As Integer ' 行数 Dim str1 As String ' 文字列 Dim i As Integer ' 整数 ' ファイル名 file1(0) = aFilepath1 ' テキストファイル1のファイル名(フルパス) file1(1) = aFilepath2 ' テキストファイル2のファイル名(フルパス) ' ファイルが存在するか確認 For i = 0 To 1 If Dir(file1(i)) = "" Then MsgBox i & ": " & file1(i) & "が存在しません。" Exit Function End If Next For i = 0 To 1 ' 使用可能なファイル番号を調べる nFNO(i) = FreeFile() ' ファイルを開く Open file1(i) For Input As #nFNO(i) ' 行数を初期化 line_no(i) = 0 ' ファイル名から、パスを除く file2(i) = Dir(file1(i)) Next ' どちらかのファイルがEOFになるまで繰り返す Do Until EOF(nFNO(0)) Or EOF(nFNO(1)) For i = 0 To 1 Line Input #nFNO(i), buf(i) ' 1行ずつ読み出す line_no(i) = line_no(i) + 1 ' 行番号を1増やす ' 1行ずつ比較 If i = 1 And StrComp(buf(0), buf(1), vbTextCompare) <> 0 Then DiffTxtFile = False MsgBox line_no(0) & "行目が異なります。" & vbCrLf _ & file2(0) & "=" & buf(0) & vbCrLf _ & file2(1) & "=" & buf(1) GoTo label_escape End If Next Loop ' 行数が異なるか? If EOF(nFNO(0)) <> EOF(nFNO(1)) Then For i = 0 To 1 If EOF(nFNO(i)) = False Then Do Until EOF(nFNO(i)) Line Input #nFNO(i), buf(i) ' 1行ずつ読み出す line_no(i) = line_no(i) + 1 ' 行番号を1増やす Loop End If Next DiffTxtFile = False MsgBox "行数が異なります。" & vbCrLf _ & file2(0) & "=" & line_no(0) & vbCrLf _ & file2(1) & "=" & line_no(1) GoTo label_escape End If label_escape: ' ファイルを閉じる For i = 0 To 1 Close #nFNO(i) Next End Function
ブログやホームページなどで他サイトRSSの情報表示
まめわざさんのを使う
mamewaza.com
コピー元シートから指定してセル範囲を別シートにコピーする
A1:C5の内容を別シートのA1にコピー
Sheets("コピー元").Range("A1", "C5").Copy _ Destination:=Sheets("コピー先").Range("A1")
ネタ元
webview2 Edgeでキャッシュクリア
C++なら
m_coreWebView2->CallDevToolsProtocolMethod("Network.clearBrowserCache", "{}", handler);
.NETなら
_coreWebView2.CallDevToolsProtocolMethodAsync("Network.clearBrowserCache", "{}");
ネタ元
ExcelVBA 1階層上の親ディレクトリパスを取得「ParentDirName」
Function ParentDirName() As String With ThisWorkbook ParentDirName = Left(.Path, InStrRev(.Path, "\") - 1) End With End Function
ネタ元
sqlite テーブル一覧から、最新のテーブルで逆順ソートした1番目の名前のみ取り出す
select name from sqlite_master where type='table' order by name DESC LIMIT 1;