画像サイズの調べ方(Windwos)
Windowsに保存してある画像の解像度を調べるには、該当する画像ファイルを右クリックして、「プロパティ」をクリックして下さい。「詳細」タブの「大きさ」に書かれています。
Excelで特定の文字を削除する関数
SUBSTITUTE関数とは、文字列の中に含まれる特定の文字を、別の文字に置き換えることができる関数 です。
=SUBSTITUTE(文字列, 検索文字列, 置換文字列)
①ハイフン → 削除する 場合
②空白 → 削除する 場合
検索文字列:「” ”」
置換文字列:無
③改行 → 削除する 場合
検索文字列:「CHAR(10)」
置換文字列:無
Excelで文字の前後の空白を削除する関数
TRIM関数を使用することで、セルに入力されているデータの前後の空白を削除することができます。
こちらの方法では、文字列の前後の空白のみなので、文字列中の空白を削除することはありません。
ただし、空白を削除する1列に対し新たに1列をトリム後の値の列として設ける必要があります。
PDFファイルの保護ビュー(Windows)
pdfファイルの操作が何もできないことはないですか。
セキュリティを強化するために、Acrobat Reader DC にはコンピューターの安全性を維持するための保護モードおよび保護されたビューが組み込まれています。保護モードが有効になっている場合、Acrobat Reader DC で PDF ファイルを表示するために必要なすべての操作が、限定された環境となります。
保護モードのステータスを確認するには、ファイル/プロパティ/詳細設定/保護モードを選択します。
保護モードはデフォルトで有効になっています。設定を指定するには、次の操作を行います。
ExcelVBAの検索で一番速い方法
ExcelVBAを使用して膨大なデータから検索したい場合の検索方法としていちばん速い方法を検証しました。
・FINDメソッド
セル範囲内で特定の情報を検索します。
Range.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)
・For Nextステートメント
指定した回数だけ、一連のステートメントを繰り返すフロー制御ステートメントです。
For counter = start To end [Step step]
[statements]
[Exit For]
[statements]
Next [counter]
・Dictionaryオブジェクト
Dictionaryは自体はそもそも検索するためのオブジェクトではないのですが名前の通り、辞書機能であり、連想配列とも呼ばれます。
この辞書には、重複は許されません。この機能を使って集計することも出来ます。
また、Dictionaryには、KeyキーとItemデータの2つが存在します。
1行目にkey、2行目にデータが入っている場合の集計方法
MaxRow = Cells(Rows.Count, 1).End(xlUp).Row '最終行を取得
SearchArray = Range(Cells(2, 1), Cells(MaxRow, 1)) '検索範囲
Set myDic = CreateObject("Scripting.Dictionary") 'Dictionary
For i = 1 To UBound(SearchArray) '配列ループ
If Not myDic.Exists(Cells(i, 1).Value)) Then 'Dictionary格納
↓ Keyval ↓Itemval
myDic.Add Cells(i, 1).Value, Cells(i, 2).Value
Else
myDic(Itemval) = myDic(Itemval)+ Cells(i, 2).Value
End If
Next i
20万行から1つの検索をした場合
1万行から100個の検索をした場合
検索の数が増えるほど、圧倒的にDictionaryが速いことが分かりました。
Excel VBA 変数を使ってセルに式を入れる
セルに動的に式を入れたい時ありますよね。
myS1.Cells(x, TarCol) = Application.WorksheetFunction.Sum(Range(Cells(TarRow, TarCol), Cells(x - 1, TarCol)))
こう入れたいとこではありますが、これでは結果が入るだけで実際の式は入っていません。
式をいれるには、RangeオブジェクトにFormulaプロパティを指定します。
myS1.Cells(x, TarCol).Formula = strFormula
strFormulaには ”=sum(”D2:D15”)” のようなアドレスを含んだ関数の式をいれますが、変数を利用したい場合には
adrs = Split(Cells(x, TarCol).Address, "$")(1)
addressプロパティとSplit関数を使って、アドレスの列名「D」を割り出します。
strFormula = "=SUM(" & adrs & TarRow & ":" & adrs & x - 1 & ")"
myS1.Cells(x, TarCol).Formula = strFormula
先ほど割り出した「D」という列名を使い、変数「TarRow」や「x-1」を用いて、セルに関数の式を代入することができます。