やりたいこと

以下のように処理したいファイルパスがダブルクォーテーションで囲われていると、VBAで処理するときに先頭と末尾がダブルクォーテーションで連続してしまいます。

 

VBAの中では、文字列がダブルクォーテーションであらかじめ囲まれているから起こる現象です。

 

ダブルクオーテーションを回避するVBAコード

以下のコードをご自身のVBEに貼り付けてご利用ください!

Sub ダブルクォーテーションを置換するコード()
    Dim ws As Worksheet
    Set ws = Thisworkbook.Worksheets("Setting")
    bookName = ws.Range("C3").Value
    If Left(bookName, 1) = """" And Right(bookName, 1) = """" Then
        bookName = Replace(bookName, """", "")
    End If
    Msgbox bookName
End Sub

 

解説

重要なポイントについて解説していきます!

bookName = ws.Range(“C3”).Value
4行目:セルC3に格納されている値(ファイルパス)を変数 bookName に格納しています。
If Left(bookName, 1) = “””” And Right(bookName, 1) = “””” Then
5行目:変数 bookName の先頭の1文字と最後の1文字がダブルクォーテーションだったらという条件です。AND条件で括っているIF文の条件式ですね。
bookName = Replace(bookName, “”””, “”)
6行目:変数 bookNameに含まれているダブルクォーテーションをブランクに置換しています。ファイル名にはそもそもダブルクォーテーションが使われていないので、変数全体に含まれるダブルクォーテーションを置換しても問題ないという前提です。

さいごに

こちらのコードはファイル分割ツールで利用されているコードを切り出したものです。

 

ぜひファイル分割ツールも使ってみてくださいね~!