パソコンお役立ち情報

画像サイズの調べ方(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つの検索をした場合

万行から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」を用いて、セルに関数の式を代入することができます。

鷹取 眞代をフォローする
鷹取 眞代

国家資格キャリアコンサルタント
心理カウンセラー

企業にて人事、総務、経理、社内SEなどを幅広く経験。
子育てをしながら家事育児と両立してきました。
48歳から大学で心理学を専攻、50歳でキャリアアップのため転職。
自分の経験から少しでも働く女性の力になりたいと思っています。
10~50代まで幅広い年齢層の方のキャリアコンサルティングを行っています。

鷹取 眞代をフォローする
女性のためのオンラインカウンセリング