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

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

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

Re[14]: EXCELの宣言エラーほか


(過去ログ 135 を表示中)

[トピック内 15 記事 (1 - 15 表示)]  << 0 >>

■79505 / inTopicNo.1)  EXCELの宣言エラーほか
  
□投稿者/ VB初心者 (1回)-(2016/04/10(Sun) 11:07:39)

分類:[VB.NET/VB2005 以降] 

◎初めて投稿します。
Visual Studio2015をダウンロードしVBを試みていますが、
ネットのサンプルを張り付けて実行しようとすると
宣言など山ほどエラーが出て(下部のコードの@〜F)、
素人には対応できません。
ご指導のほど、お願いします。
OSはウィンドウズ10です。


Imports Microsoft.Office.Core'   @
Imports Microsoft.Office.Interop'  A
Public Class Form1
Private xlApp As Excel.Application()'B
Private xlBooks As Excel.Workbooks' C
Private xlBook As Excel.Workbook' D
Private xlSheets As Excel.Sheets' E
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim xlRange As Excel.Range = xlSheet.Range("A1")Private xlSheet As Excel.Worksheet
MRComObject(xlRange)' F
End Sub
End Class
引用返信 編集キー/
■79506 / inTopicNo.2)  Re[1]: EXCELの宣言エラーほか
□投稿者/ daive (100回)-(2016/04/10(Sun) 13:14:14)
2016/04/10(Sun) 13:29:17 編集(投稿者)
<pre><pre>> Visual Studio2015をダウンロードしVBを試みていますが、
惜しい、そこで、Express / Community / Professional 等エディションも記入して欲しいです。
というのは、Express と 他では機能が異なる部分があります。
Community は、Professional 相当とされていますが、実際上は異なる部分が有る様子です。
(Community を使う予定も無いので、未検証です。)
’
コードが含まれている場合は、「図表モード」で投稿してください。
’
Visual Studio 2015 Professional update 2 / VB.NET で追試をしてみました。
通常は、超面倒なので、こんな書込みはしませんが、
VS2015 / VB.NET / で、Office.Interop.Excel 参照の指定を、改めては実行していないなと、
指定方法が変わっているかどうかの、私自身の確認を兼ねた書込みです。
’
1.新しいプロジェクト:テンプレート:Visual Basic:.NET Framework 4.6.1 :Windows フォーム アプリケーション
  名前:Test20160410 / 場所:D:\Work / ソリューション名:Test20160410
  で、OKを押し作成。
2.Form1.vb[デザイン] とタブた表示され、Form1 が表示されているので、右クリック:コードの表示
  で、Form1.vb が表示される。
  Public Class Form1

  End Class
  が、表示されるはず。
3.で、@を挿入する
  Imports Microsoft.Office.Core '   @
  Public Class Form1

  End Class
  この時点で、「インポートMicrosoft.Office.Core .... 」エラーが表示される。
  何故なら、初期状態では参照するように指定されていない機能を、Imports しようとしているから。
  なので、
  ソリューションエクスプローラー:参照:右クリック:参照の追加
  参照マネージャ:COM:タイプライブラリ:Microsoft Office 15.0 Objekct Library を選択して、
  チェックを入れる。しばらく待つと、エラーの波線が消える。
  ※OFFICE 2013 の場合、OFFICE が2007 / 2010 / 2016 の場合は、15.0 の部分が、OFFICEの内部バージョンに変わる。
   つまり、OFFICE が入っていないPCの場合は、この方法は使えない。VS2015 がサポートしていない、OFFICE では、
   動作が保証されず、サポートもされない。外国語版対応を考える場合は、更なる注意があるが、割愛。

4.Aを挿入する
  Imports Microsoft.Office.Core    '  @
  Imports Microsoft.Office.Interop '  A
  Public Class Form1

  End Class
  ここでも、Aの部分で、「インポートMicrosoft.Office.Interop.... 」エラーが表示される。
  ソリューションエクスプローラー:参照:右クリック:参照の追加
  参照マネージャ:アセンブリ:拡張:
  Microsoft.Office.Interop.Excel 15.0.0.0 を選択して(複数インストールでは、バージョン指定に注意)
  チェックを入れて、しばらく待ちます。

5.B〜Eまで、順に張付けして、参照エラーにならないのを確認する。
  Imports Microsoft.Office.Core    '  @
  Imports Microsoft.Office.Interop '  A
  Public Class Form1
      Private xlApp As Excel.Application() ' B
      Private xlBooks As Excel.Workbooks  ' C
      Private xlBook As Excel.Workbook   ' D
      Private xlSheets As Excel.Sheets   ' E
  End Class

6.Fの前に、
  Imports Microsoft.Office.Core    '  @
  Imports Microsoft.Office.Interop '  A
  Public Class Form1
      Private xlApp As Excel.Application() ' B
      Private xlBooks As Excel.Workbooks  ' C
      Private xlBook As Excel.Workbook   ' D
      Private xlSheets As Excel.Sheets   ' E

      Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
          Dim xlRange As Excel.Range

      End Sub
  End Class
  此処までは確認したので、この先は、御自身で検索したり、探したりしてみてください。
  どうしても、ダメであれば、ダメだった状況を、再度書込みしてみてください。

引用返信 編集キー/
■79507 / inTopicNo.3)  Re[2]: EXCELの宣言エラーほか
□投稿者/ VB初心者 (2回)-(2016/04/10(Sun) 15:14:57)
No79506 (daive さん) に返信
上級者には初歩的で大変面倒くさい事と思われます。
ご親切にありがとうございます。
3.は何とかでき、エラーが消えましたが、次の4.で
  ・・参照の追加
  参照マネージャ:アセンブリ:拡張: までは来ましたが、
「Microsoft.Office.Interop.Excel 15.0.0.0 」がいくら探しても見当たりません。
どこかの設定が間違っているか、探し方が悪いのでしょうか?

++++++++++++++++++++++++++++原文より+++++++++++++++++++++++++++++++++++++
4.Aを挿入する
  Imports Microsoft.Office.Core '  @
  Imports Microsoft.Office.Interop '  A
  Public Class Form1

  End Class
  ここでも、Aの部分で、「インポートMicrosoft.Office.Interop.... 」エラーが表示される。
  ソリューションエクスプローラー:参照:右クリック:参照の追加
  参照マネージャ:アセンブリ:拡張:
  Microsoft.Office.Interop.Excel 15.0.0.0 を選択して(複数インストールでは、バージョン指定に注意)
  チェックを入れて、しばらく待ちます。



> 2016/04/10(Sun) 13:29:17 編集(投稿者)
>
>
> <pre><pre>> Visual Studio2015をダウンロードしVBを試みていますが、
> 惜しい、そこで、Express / Community / Professional 等エディションも記入して欲しいです。
> というのは、Express と 他では機能が異なる部分があります。
> Community は、Professional 相当とされていますが、実際上は異なる部分が有る様子です。
> (Community を使う予定も無いので、未検証です。)
> ’
> コードが含まれている場合は、「図表モード」で投稿してください。
> ’
> Visual Studio 2015 Professional update 2 / VB.NET で追試をしてみました。
> 通常は、超面倒なので、こんな書込みはしませんが、
> VS2015 / VB.NET / で、Office.Interop.Excel 参照の指定を、改めては実行していないなと、
> 指定方法が変わっているかどうかの、私自身の確認を兼ねた書込みです。
> ’
> 1.新しいプロジェクト:テンプレート:Visual Basic:.NET Framework 4.6.1 :Windows フォーム アプリケーション
>   名前:Test20160410 / 場所:D:\Work / ソリューション名:Test20160410
>   で、OKを押し作成。
> 2.Form1.vb[デザイン] とタブた表示され、Form1 が表示されているので、右クリック:コードの表示
>   で、Form1.vb が表示される。
>   Public Class Form1
>
>   End Class
>   が、表示されるはず。
> 3.で、@を挿入する
>   Imports Microsoft.Office.Core '   @
>   Public Class Form1
>
>   End Class
>   この時点で、「インポートMicrosoft.Office.Core .... 」エラーが表示される。
>   何故なら、初期状態では参照するように指定されていない機能を、Imports しようとしているから。
>   なので、
>   ソリューションエクスプローラー:参照:右クリック:参照の追加
>   参照マネージャ:COM:タイプライブラリ:Microsoft Office 15.0 Objekct Library を選択して、
>   チェックを入れる。しばらく待つと、エラーの波線が消える。
>   ※OFFICE 2013 の場合、OFFICE が2007 / 2010 / 2016 の場合は、15.0 の部分が、OFFICEの内部バージョンに変わる。
>    つまり、OFFICE が入っていないPCの場合は、この方法は使えない。VS2015 がサポートしていない、OFFICE では、
>    動作が保証されず、サポートもされない。外国語版対応を考える場合は、更なる注意があるが、割愛。
>
> 4.Aを挿入する
>   Imports Microsoft.Office.Core '  @
>   Imports Microsoft.Office.Interop '  A
>   Public Class Form1
>
>   End Class
>   ここでも、Aの部分で、「インポートMicrosoft.Office.Interop.... 」エラーが表示される。
>   ソリューションエクスプローラー:参照:右クリック:参照の追加
>   参照マネージャ:アセンブリ:拡張:
>   Microsoft.Office.Interop.Excel 15.0.0.0 を選択して(複数インストールでは、バージョン指定に注意)
>   チェックを入れて、しばらく待ちます。
>
> 5.B〜Eまで、順に張付けして、参照エラーにならないのを確認する。
>   Imports Microsoft.Office.Core '  @
>   Imports Microsoft.Office.Interop '  A
>   Public Class Form1
>   Private xlApp As Excel.Application() ' B
>   Private xlBooks As Excel.Workbooks  ' C
>   Private xlBook As Excel.Workbook   ' D
>   Private xlSheets As Excel.Sheets   ' E
>   End Class
>
> 6.Fの前に、
>   Imports Microsoft.Office.Core '  @
>   Imports Microsoft.Office.Interop '  A
>   Public Class Form1
>   Private xlApp As Excel.Application() ' B
>   Private xlBooks As Excel.Workbooks  ' C
>   Private xlBook As Excel.Workbook   ' D
>   Private xlSheets As Excel.Sheets   ' E
>
>   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
>   Dim xlRange As Excel.Range
>
>   End Sub
>   End Class
>   此処までは確認したので、この先は、御自身で検索したり、探したりしてみてください。
>   どうしても、ダメであれば、ダメだった状況を、再度書込みしてみてください。
>

引用返信 編集キー/
■79510 / inTopicNo.4)  Re[3]: EXCELの宣言エラーほか
□投稿者/ daive (101回)-(2016/04/11(Mon) 08:33:58)
2016/04/11(Mon) 08:45:30 編集(投稿者)


No79507 (VB初心者 さん) に返信
>   参照マネージャ:アセンブリ:拡張: までは来ましたが、
> 「Microsoft.Office.Interop.Excel 15.0.0.0 」がいくら探しても見当たりません。
> どこかの設定が間違っているか、探し方が悪いのでしょうか?
はい、
インストールの状態が違う
使用しているOFFICE のバージョン、エディションが違う
他が考えられます。
⇒やった事が無い方にとっては、最大の鬼門が発生中の様子です。

OFFICE 又は、EXCEL のバージョン、エディションは何をお使いですか?
VS2015 の OFFICE サポートは、OFFICE 2013 / 2016 です。

Microsoft.Office.Interop.Excel 15.0.0.0 : OFFICE 2013 EXCEL
Microsoft.Office.Interop.Excel 14.0.0.0 : OFFICE 2010 EXCEL
Microsoft.Office.Interop.Excel 12.0.0.0 : OFFICE 2007 EXCEL ??
というのは、
OFFICE / EXCEL のインストールで、
プログラムの追加と削除:Windows 7 迄?
プログラムと機能   :Windows 8 以後
OFFICE / EXCELのところで、右クリック :変更
画面:Microsoft Office xxxxx のインストールオプションを変更します。
の処のオプションボタン
機能の追加/削除:続行:Office ツール:アクション .NET プログラミングサポート
が、有効になっていないと、出てこないはずです。
ザックリとでは、Office ツールをすべてマイコンピュータから実行に、しておきます。
(通常インストールでは、有効になっていません。
 OFFICE 20xx Personal には、この機能が無かった記憶があるのですが、不明です。
 ⇒開発には、確か、Standard / Professional 以上が必要だったかも。)、
'
OFFICE / EXCEL の x32(x86) と、x64 は共存出来ませんので、
意識してインストールしない限り、x32版のインストールです。
つまり、VS2015の実行モードは、Any CPU ⇒x x86 に構成マネージャで
設定するなど、初心者さんには敷居が高い部分があります。
⇒ネット検索で、正しい情報を検索できれば、解決しますが、
 初歩編まで、書込む気はありません。自助努力してください。

で、
Visual Studio 2015 のOFFICE サポートは、
OFFCIE 2013 / 2016 ですので、OFFICE 2010 以前は、サポートされません。
絶対使えないかというと、そうではないのですが、メーカーサポートが無いという状態です。
この辺の話は、
事前バインディング
実行時バインディング
という、仕組みの事にも繋がるので、割愛。
引用返信 編集キー/
■79530 / inTopicNo.5)  Re[4]: EXCELの宣言エラーほか
□投稿者/ VB初心者 (3回)-(2016/04/11(Mon) 22:03:58)
No79510 (daive さん) に返信

 お忙しいところ、丁寧にご指導いただき感謝します。

OFFCIEは 2016なのでその点は問題無いと思いますが、初心者にて全部を一挙には理解できませんので、一つ一つ確認しながら試してみたいと考えており、しばらくお時間下さい。

取り急ぎ、お礼まで。
引用返信 編集キー/
■79535 / inTopicNo.6)  Re[5]: EXCELの宣言エラーほか
□投稿者/ VB初心者 (4回)-(2016/04/12(Tue) 11:43:02)
No79510 (daive さん) に返信

 daive さん 大変お世話になっています。
現在分かった範囲で報告します。

1.PCは64ビット

2.OFFICEは C:\Program Files に入っています

3.バージョンはOFFICE2016 Professional

4.EXCEL は x32(x86)

5.OSはWindows10

・・です。

 このほかで気になるのが、

「ソリューションエクスプローラー:参照:右クリック:参照の追加 参照マネージャ:COM:タイプライブラリ」

 の操作のあと、

  Microsoft Office 15.0 Objekct Library を選択しクリックした際に

Microsoft Office 16.0 Objekct Library も一緒に選択され、自動的にクリックされましたが(片方のみの選択ができない)

  これは問題なかったですか?






引用返信 編集キー/
■79536 / inTopicNo.7)  Re[6]: EXCELの宣言エラーほか
□投稿者/ daive (104回)-(2016/04/12(Tue) 12:41:44)
>
>   Microsoft Office 15.0 Objekct Library を選択しクリックした際に
>
> Microsoft Office 16.0 Objekct Library も一緒に選択され、自動的にクリックされましたが(片方のみの選択ができない)
>
>   これは問題なかったですか?
OFFICE 2016 / EXCEL 2016 ですので、

Microsoft Office 15.0 Objekct Library :チェックは外します。OFFICE 2013 / EXCEL 2013 用
Microsoft Office 16.0 Objekct Library :これのみ、チェックします。

OFFICE のインストールの、追加、削除で、
機能の追加/削除:続行:Office ツール:アクション .NET プログラミングサポート
の様な物は、有りましたか?有った場合は、マイコンピュータから実行するにしましたか?

で、4.Aの方は、

Microsoft.Office.Interop.Excel 16.0.0.0

になるはずです。
OFFICE 2016 / EXCEL 2016 は、排他インストールとの事も聞こえますので、環境を用意していず、未確認です。


引用返信 編集キー/
■79539 / inTopicNo.8)  Re[7]: EXCELの宣言エラーほか
□投稿者/ daive (105回)-(2016/04/12(Tue) 20:17:24)
仮想環境で、以下のインストールをしてみました。

Windows 10 Version 1511 (Updated Feb 2016) (x64) :Windows 10 x64 Pro でライセンス認証
OFFICE 365 online download OFFICE2016x32版:アンインストール、修復はあるが、機能追加削除等のオプションが無い、(;´д`)トホホ
Visual Studio 2015 professional Update2
 インストール時に
 既定でなく、カスタムを選択
 Microsoft Offic Developer Tools:チェックが入っていないので、チェックする。(;´д`)トホホ、ワカンナイよねぇ。

 ⇒私は、開発ツールは、完全インストールする派なので、気にした事なかったです。
  インストールした後に、不要部分があれば、不要機能を削除しています。

 只今インストール中です。終わったら、再度レポートします。
引用返信 編集キー/
■79540 / inTopicNo.9)  Re[8]: EXCELの宣言エラーほか
□投稿者/ daive (106回)-(2016/04/12(Tue) 20:59:46)
2016/04/12(Tue) 21:10:17 編集(投稿者)

以下参考になれば。御勉強させて頂きました。(^◇^)

写真共有サイト:フォト蔵

VS2015 参照:COM :タイプライブラリ
http://photozou.jp/photo/photo_only/3185026/235418848?size=1024#content

VS2015 参照:アセンブリ :拡張
http://photozou.jp/photo/photo_only/3185026/235418853?size=1024#content

16.0.0.0 が居ない理由は、調べていないので解りません。
取合えず、15.0.0.0 をチェックします。

VS2015 コード例
http://photozou.jp/photo/photo_only/3185026/235418854?size=1024#content

  xlSheet.Range("A1")Private xlSheet As Excel.Worksheet
MRComObject(xlRange) ' F
が、赤波線になっているのは、エラーだから。
引用返信 編集キー/
■79541 / inTopicNo.10)  Re[9]: EXCELの宣言エラーほか
□投稿者/ VB初心者 (5回)-(2016/04/12(Tue) 21:11:51)
No79540 (daive さん) に返信

daive さん またもや ご親切に、たくさんの情報を有難うございました。

今、帰ってきて見たばかりで、にわかには理解できませんので、明日以降、

時間をかけて拝見し、対応したいと思います。

 まずはお礼申し上げます。

 有難う御座いました。


引用返信 編集キー/
■79544 / inTopicNo.11)  Re[10]: EXCELの宣言エラーほか
□投稿者/ ヴァン (25回)-(2016/04/13(Wed) 09:41:06)
こんにちは。

エクセルのバージョンに依存しない方法はどうでしょうか?

http://qiita.com/carbonated3030/items/0e64a8206a8d5e3be923

引用返信 編集キー/
■79553 / inTopicNo.12)  Re[11]: EXCELの宣言エラーほか
□投稿者/ VB初心者 (6回)-(2016/04/13(Wed) 21:50:34)
No79544 (ヴァン さん) に返信

 本日は急な割り込み業務で、1日追いまくられ、返事が大変遅くなり申し訳ありません。

daive さんのご指導の内容も検討出来ずにいました。

 ヴァン さんの魅力あるご指導についても是非、明日以降、検討させていただきたいと思います。

有難うございました。
 
引用返信 編集キー/
■79557 / inTopicNo.13)  Re[12]: EXCELの宣言エラーほか
□投稿者/ VB初心者 (7回)-(2016/04/14(Thu) 11:55:13)
No79540 (daive さん) に返信

 連絡が遅くなって申し訳ありません。
「Microsoft Office 16.0 Objekct Library :これのみ、チェックします。」・・についてはおかげさまで現在解決していますが、まだそれ以上の進展はありません。
引き続き、元に戻って検討しますが時間がかかりそうです。


No79544 (ヴァン さん) に返信

 実行時バインディングのご紹介有難うございました。

上から3行目で「xlApp」に関して「宣言が必要です」とのメッセイジが出ました。
宣言しているのに宣言が無いとは理解できません。
何か解決策が有りますか?

Public Class Form1
Dim xlApp As Object
xlApp = CreateObject("Excel.Application")
End Class
引用返信 編集キー/
■79562 / inTopicNo.14)  Re[13]: EXCELの宣言エラーほか
□投稿者/ 魔界の仮面弁士 (695回)-(2016/04/14(Thu) 13:21:01)
No79557 (VB初心者 さん) に返信
> Public Class Form1
> Dim xlApp As Object
> xlApp = CreateObject("Excel.Application")
> End Class


Class Form1 という「クラス」の直下ではなく、
Sub Button1_Click などの「メソッド」内に記述してください。

引用返信 編集キー/
■79567 / inTopicNo.15)  Re[14]: EXCELの宣言エラーほか
□投稿者/ VB初心者 (8回)-(2016/04/14(Thu) 22:07:27)
No79562 (魔界の仮面弁士 さん) に返信

 魔界の仮面弁士 さん有難う御座いました。

確かにVB2015の標準コードの中に入れたら(下記)エラー無く、通りました。

この掲示板はたくさんの方が見ていて、助けて下さることが分かりました。

daive さんのご指導内容は、引き続き努力するとして、当初の目的は果たせそうなのでひとまず解決とさせて頂きます。

今後も遠慮なく、質問しますので、よろしくお願いします。

皆様有難うございました。、

Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim xlApp As Object
xlApp = CreateObject("Excel.Application")
End Sub
End Class
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -