■98272 / inTopicNo.6) |
Re[4]: VBでExcelを開くと文字化けするようになった |
□投稿者/ masaX (5回)-(2021/10/26(Tue) 17:27:47)
|
> ★質問1★ "C:\Users\m-sugimoto\Desktop\エクセルテスト.xlsx" において、 > 化けて表示されるのはワークシート上の内容だけですか? > シート名やシート数の破損はありましたか?
>>試しにすべて消去して白紙にしたExcelで試してみたのですが、 > > ★質問2★ 既存ファイルを加工するのではなく、 > 完全に新規作成したばかりの .xlsx ファイルでも同じように化けますか? > それとも、特定のファイルだけが化けるのでしょうか?
もう一度、作ったばかりのExcelで空白のまま、シートだけを一つ追加したファイルでやってみたところ 同じ様に前に書いたような文字がいっぱい出てきたのと シートは一つ追加したのに一つだけしか表示されず またシート名は入力していないのにファイル名である「book1」と表示されています。
>>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 に変えた時に、 > 圧縮ファイルとしてその中身を展開できますか? > 正しく展開できないなら、ファイル自体の破損が疑われます。
上で書かれてる事は私には全く意味が分かりません(汗) .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 の世代なら、既定でインストールされるんじゃないかな。
現在、参照の追加の中では Microsoft Excel 9.0 Object Library これが一番大きいのですが 新しいのをダウンロードする方法があるんでしょうか?
もし次、何か試してみるとすれば、Access(Office2000)をアンインストールしてみる事でしょうか?
|
|