C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■98271 / 3階層)  VBでExcelを開くと文字化けするようになった
□投稿者/ 魔界の仮面弁士 (3198回)-(2021/10/26(Tue) 16:41:18)
2021/10/26(Tue) 16:42:55 編集(投稿者)

No98270 (masaX さん) に返信
>>本来どのように表示されるデータが、実際にはどのように文字化けしてしまうのかを具体的に教えてください。
> 本来は表形式になるはずのファイルが表の罫線などは全て消えて
> こんな文字が一面に出ます。

文字化けした内容をそのまま投稿すると、掲示板側でさらに破損してしまうので、
破損後の画面キャプチャ等を見たかったところです。まぁ良いですけど。

★質問1★ "C:\Users\m-sugimoto\Desktop\エクセルテスト.xlsx" において、
 化けて表示されるのはワークシート上の内容だけですか?
 シート名やシート数の破損はありましたか?


> 試しにすべて消去して白紙にしたExcelで試してみたのですが、

★質問2★ 既存ファイルを加工するのではなく、
 完全に新規作成したばかりの .xlsx ファイルでも同じように化けますか?
 それとも、特定のファイルだけが化けるのでしょうか?


> PK
これ、出現位置がおかしいですね?

掲示板に送った時に、Shift_JIS 変換によってさらに化けた可能性もありますが、
貼られた内容をそのまま ASCII としてデコードすると
 P ⇒ 0x50
 K ⇒ 0x4B
  ⇒ 0x03
  ⇒ 0x04
  ⇒ 0x14
  ⇒ 0x06
  ⇒ 0x08
のように記載されています。

.xlsx や .docx や .pptx の場合、『ファイル先頭部』のマジックバイトが
 P,K,^C,^D,^T,\0,^F,\0,^H,\0
すなわち 50 4b 03 04 14 00 06 00 08 00 となるはずです。
まさにそれと一致しますね。

ファイル先頭にあるはずのバイナリが、
シート内に表示されるというのであれば、かなり異常。


★質問4★ .xlsx ファイルの拡張子を .zip に変えた時に、
 圧縮ファイルとしてその中身を展開できますか?
 正しく展開できないなら、ファイル自体の破損が疑われます。


> VisualStudio2019の「参照の追加」で出てくる一番新しいのが良いのかな?と、まるで知識の無い状態で選択しました。

Office の場合、ProgId のバージョン番号指定は、ほとんど意味をなさないです。
複数バージョンの混在を認めるような仕組みにはなっていないので。


> 以前に作っていたプログラムだったので、試しに今の環境(Office2019が入っていて、VisualStudio2019で作成)で新たに作ってみたプログラムでもダメでした。
> 試しにエクセルも新しく作ったファイルで試してみましたがダメでした。

新しい PC なのですね?


> 主にOffice2019が入ってるのですが、AccessだけOffice2000のが入ってます。
開発環境としては論外かも…。
上位バージョンの Office が入っている環境に、後から 旧バージョンの Office を入れたりすると、
レジストリ情報が汚染されるなどして、一部の機能が正しく動かなくなることがあります。
そのため旧バージョンの Office を使いたいのなら、本環境とは分離した仮想環境上で動作させた方が無難です。

また、Office 2000 が入っている環境に、それ以降のバージョンを入れる事は一応できますが、
保証された組み合わせではありません。まぁ、2000 を使っている時点で保証は望むべくも無いのですが。


それと、ストアアプリ版の Office は利用されていませんか?
ストアアプリ版は、外部からのオートメーション操作との相性が悪いので、
もしもストアアプリ版をお使いなら、C2R / MSI 版に入れ替えましょう。


> 他のExcel 5.0やOffice 9.0なんかも入れてみたのですがダメで、
同じ名前のメソッドであっても、参照設定しているライブラリバージョンが変わると、
ディスパッチID や引数定義の異なる別処理の呼び出しになることもあります。
レイトバインドならばともかく、アーリーバインド時にはバージョンも一致させましょう。

9.0 は Office 2000 の物なので、現行バージョンの Windows を使っているのであれば、
特に出番はありません。

Office インストーラーの「.NET プログラミングサポート」の状況も確認してみてください。
https://answers.microsoft.com/ja-jp/msoffice/forum/all/microsoft-office-365/501b71ab-c26d-4705-9e5b-80679265b49c?auth=1


ちなみに Excel 5.0 は「最後の 16bit 版エクセル」です。(もちろん、64bit 版 Windows 上では動きません)
インターフェイス自体は、OLE 埋め込みや I-ISAM Driver で使われることはありますが。

また、Office 2000 向けとして参照設定した場合と、Office 2003 向けの参照設定では、
VB.NET から見た場合、名前空間からして違ってきたりします。(VBA の参照設定ではほぼ一緒なのですが)


> このあたり、どこかで確認できるサイトなどがあれば見てみたいです。
Excel のバージョン一覧は、とり合えずこの辺。
https://ja.wikipedia.org/wiki/Microsoft_Excel#%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E5%B1%A5%E6%AD%B4


Office のバージョンによっては、PIA を別途ダウンロードする必要があることもありますが、
2016, 2019 の世代なら、既定でインストールされるんじゃないかな。
編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[2]: VBでExcelを開くと文字化けするようになった /masaX 返信無し
 
上記関連ツリー

VBでExcelを開くと文字化けするようになった / masaX (21/10/26(Tue) 12:30) #98266
Re[1]: VBでExcelを開くと文字化けするようになった / masaX (21/10/26(Tue) 13:11) #98267
Re[1]: VBでExcelを開くと文字化けするようになった / 魔界の仮面弁士 (21/10/26(Tue) 13:39) #98268
│└ Re[2]: VBでExcelを開くと文字化けするようになった / masaX (21/10/26(Tue) 15:44) #98270
│  └ VBでExcelを開くと文字化けするようになった / 魔界の仮面弁士 (21/10/26(Tue) 16:41) #98271 ←Now
Re[1]: VBでExcelを開くと文字化けするようになった / 大谷刑部 (21/10/26(Tue) 17:31) #98273
  │  └ Re[4]: VBでExcelを開くと文字化けするようになった / masaX (21/10/26(Tue) 17:27) #98272
  │    └ Re[5]: VBでExcelを開くと文字化けするようになった / 魔界の仮面弁士 (21/10/26(Tue) 21:43) #98278
  │      └ Re[6]: VBでExcelを開くと文字化けするようになった / masaX (21/10/26(Tue) 23:03) #98279
  └ Re[2]: VBでExcelを開くと文字化けするようになった / masaX (21/10/26(Tue) 19:06) #98274
    ├ Re[3]: VBでExcelを開くと文字化けするようになった / ビール飲み (21/10/26(Tue) 19:35) #98275
    │└ Re[4]: VBでExcelを開くと文字化けするようになった / masaX (21/10/26(Tue) 20:23) #98276
    │  └ Re[5]: VBでExcelを開くと文字化けするようになった / ビール呑み (21/10/26(Tue) 20:58) #98277
    │    └ Re[6]: VBでExcelを開くと文字化けするようになった / くま (21/10/27(Wed) 01:41) #98280
    └ Re[3]: VBでExcelを開くと文字化けするようになった / 大谷刑部 (21/10/27(Wed) 09:48) #98281
      └ Re[4]: VBでExcelを開くと文字化けするようになった / masaX (21/10/27(Wed) 13:54) #98282 解決済み

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信