やりたいこと
以下のように処理したいファイルパスがダブルクォーテーションで囲われていると、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に含まれているダブルクォーテーションをブランクに置換しています。ファイル名にはそもそもダブルクォーテーションが使われていないので、変数全体に含まれるダブルクォーテーションを置換しても問題ないという前提です。
さいごに
こちらのコードはファイル分割ツールで利用されているコードを切り出したものです。
ぜひファイル分割ツールも使ってみてくださいね~!