Excel VBAファイル(.bas)の文字化けの対策
更新日:2025/01/22

どういうタイミングで文字化けするか?
ブラウザでのファイル読み込み時に文字化けしてしまいます
メモ帳でしたら自動判定で正常に表示されます
そもそも文字化けとは
文字化けは異なる文字コードでエンコーディングすることで発生します。Shift-JISで書かれたファイルをUTF-8として読み込むと、バイナリデータの解釈方法が異なるため、意図しない文字として表示されます。
エンコーディングとは
Shift-JIS
Shift-JISは文字コードの一種です。
文字コードとは?
文字コードとは:
- コンピュータが文字を扱うための規則
- 文字とバイナリデータの対応表
- 同じ文字でも異なる表現方法が存在
Shift-JISの特徴:
- 主に日本のWindowsで使用
- VBAなど古いシステムで採用
- 2バイトで日本語を表現
そのため、Shift-JISで書かれた.basファイルをUTF-8として読み込むと文字化けが発生します。
Blob
Blobは、バイナリデータを扱うためのJavaScriptのオブジェクトです。
.basファイル(Shift-JIS) → ArrayBuffer(バイナリ) → Text(UTF-8)の変換で、Shift-JISのバイナリデータをUTF-8として誤って解釈したことが原因です。
↓
処理タイミング:
- ファイル読み込み時:バイナリデータとして読み込む
- TextDecoder使用時:バイナリ→テキストにデコード
- 表示前:適切な文字コードでエンコード
この方法は一般的で、特にShift-JISなど日本語文字コードを扱う際によく使用されます。ブラウザの標準APIを使用しているため、信頼性が高いアプローチです
Blobの主な使用例
ファイル操作
// ダウンロード
const blob = new Blob(['テキストデータ'], { type: 'text/plain' });
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = 'file.txt';
a.click();
データ変換
// バイナリ→テキスト変換
const blob = new Blob([arrayBuffer], { type: 'text/plain' });
const text = await blob.text();
API通信
// ファイルアップロード
const formData = new FormData();
formData.append('file', blob, 'filename.txt');
await fetch('/upload', {
method: 'POST',
body: formData
});

-
検索
(例) debug search etc.. -
カテゴリー
-
mixhostでのWordPress利用について
更新日:2024/04/02
299 view
-
scrollHint
更新日:2024/03/13
250 view
-
XML Sitemap Generator for Google不具合のダウングレード対応、代替プラグイン
更新日:2024/06/13
236 view
-
【SnowMonkey】納品までのフローまとめ
更新日:2025/02/15
163 view
-
ワードプレスでフォントを変えたいとき、プラグインを使えば初心者でも簡単
更新日:2025/02/16
144 view
-
【Googleサーチコンソール】検索画面で表示させたくない「Googleのインデックス削除」
更新日:2024/06/07
130 view
-
【Snow Monkey】ショートコードで編集画面で任意の場所にHTMLファイルを挿入
更新日:2025/04/04
124 view
-
キーワード検索で上位表示させる方法【SEO】
更新日:2023/10/28
120 view
-
tailwindcss使い方
更新日:2024/03/13
120 view
-
Recline: GitHub Copilotで動作するClaude 3.5 Sonnet搭載の開発支援ツール
更新日:2025/01/20
110 view
-
WordPressプラグイン「All-in-One WP Migration」のトラブル
更新日:2022/03/31
84 view
-
ワードプレスセキュリティー対策まとめ【2025年】「site guard wordpress」「BackWPup バージョン5でUI変更!?」
更新日:2025/02/25
76 view
-
SSHを使用してGitHubのリポジトリをクローン、複数の接続元で公開鍵をディレクトリで区別する方法
更新日:2025/01/13
47 view
-
VSCodeで開発効率を劇的に向上させる!Roo-Clineプラグイン完全ガイド【Gemini API】
更新日:2025/02/08
43 view
-
Express、FastAPIを使用し、二重fetch構成のメリット
更新日:2025/03/28
41 view
-
「JSONスキーマ」と「Few-shot Learning」で実現する次世代生成AIソフトウェア開発の可能性
更新日:2025/02/12
40 view
-
WordPressの無料画像素材のおすすめダウンロードサイト!
更新日:2022/02/22
35 view
-
リファクタリング【VSCode Javasctipt Python】
更新日:2025/03/09
35 view
-
形態素解析とは?初心者でもわかるツールの使い方と実践例
更新日:2025/02/08
33 view
-
【Next.js AWS】音声文字起こし&要約、分析アプリケーション(S3)(Transcribe)(Amazon Bedrock)
更新日:2025/02/13
30 view