• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Vb.Net2005からMsProjectを起動する)

Vb.Net2005からMsProjectを起動する

このQ&Aのポイント
  • Vb.Net2005からMsProjectを起動してCSVファイルを自動的に読み込みたい
  • MsProjectがインストールされていない場合でも動作する方法を模索中
  • Option Strict Onの制約下で遅延バインディングのビルドエラーを回避する方法を求めています

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

InvokeMemberとか C#だけど、VB.NETでもおそらく似たようなものだろう。 http://d.hatena.ne.jp/zecl/20080128/p1

Bickyon
質問者

お礼

ありがとうございます。 おかげ様で、ビルドエラーはなくなりました。 まだ、起動できるところまではできていませんが、 引数の渡し方を探って、頑張ります。

Bickyon
質問者

補足

できるようになりました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • vbsで、フォルダ内にあるcsvファイル全てを開き、マクロを起動させた

    vbsで、フォルダ内にあるcsvファイル全てを開き、マクロを起動させたい。 こんにちは。 お世話になっております。 さて、最初はバッチでどうにかならないかと思っていましたが、下記vbsソースを見つけ、 早速チャレンジしたのですが、ファイルが開くところまではうまく行きますが、「マクロ Macro1がありません」というメッセージが出てしまい、マクロが実行されません。 手動でマクロを実行しようとするときに出てくるマクロ一覧には、PERSONAL.XLS:Macro1と、表示されております。 マクロの保存先をまちがえているのでしょうか? また、あるフォルダのcsvファイル全てに対して1つのvbsキックで処理が行なわれるようにするには、どの様にすればいいでしょうか? よろしくお願いします。 ----------------------------------------------------------------------- Dim obj Set obj = WScript.CreateObject("Excel.Application") obj.Visible = True obj.Workbooks.Open "C:\Documents and Settings\Administrator\My Documents\001.xls" obj.Application.Run "Macro1"

  • VB6における事前バインディングの記述方法について

    VB6.0で、ActiveXコンポーネントのインスタンス生成に関連する質問をさせていただきます。 まず前提として、VB6.0では、 ExcelのようなActiveXコンポーネントをコード上で生成する場合、下記の4通りの記述が可能です。 -------------------------------------------- '(1) 参照設定は要らない Dim hoge As Object Set hoge = CreateObject("Foo.Bar") '(2) 参照設定が必要 Dim hoge As Foo.Bar Set hoge = CreateObject("Foo.Bar") '(3) 参照設定が必要 Dim hoge As Object Set hoge = New Foo.Bar '(4) 参照設定が必要 Dim hoge As Foo.Bar Set hoge = New Foo.Bar --------------------------------------------- この中で遅延バインディング(実行時バインディング)は(1)のみで、 (2)~(4)は事前バインディングです。 ここで疑問なのですが、開発者が事前バインディングでコーディングを行う場合、 (4)以外の記述(つまり、(2)と(3)の記述方法)にメリットや必要性はあるのでしょうか。 (2)はコード補完が使えなくなりますし、 (3)はレジストリ経由のせいでパフォーマンスが低下するでしょうし、 デメリットしかないように思われます。 そうであれば、これらの記述方法は推奨されないものなのでは、と思ったしだいです。 回答、よろしくお願いします。

  • VB6.0 Datagridに関する質問

    いつもお世話になっております。 以下のことをVB6.0上で実現させたいとかんがえています。 1.VB6.0のフォームにDataGridを貼り付けて そこにEXCELファイルからDataを読み込んで表示させる。 2.表示されたDataの一部をGRID上で変更し、 決定ボタンを押すことで、EXCELファイルに上書きする。 FLEXGRIDを使用して試してみたところ、READONLYで 変更できないようでしたので、 DataGridで試しています。 上記2点を実現させることは可能ですか? また、GRIDにADOなどを使わずに FILEOPEN、INPUTで取得したDATAを表示させることはできますか? また実現させるにあたって参考になるサイト、情報を頂ければ助かります。 乱文でわかりずらい点があったらすみません。 なお、ファイル形式はEXCELにこだわらず、CSVでもいいです。 GRIDの使用についても表として使用するのみで、 ソートなどは必要ないので 他にいい方法があればお教えください。

  • VB2010ExpressでOfficeを操る

    いつも基本的な質問ばかりで情けないのですが、 私の環境は、 64bit版Windows7 Professionalです。 MicrosoftのOffice2010 Professionalが入っている環境で、 Visual Basic 2010 Expressをインストールしました。 Visual Basic上でExcelやWordを操作したいのですが、 Microsoftのチュートリアルのサイトにある、 1.Visual Studio を起動します。 2.[ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。 3.[インストールされたテンプレート] ペインで、[Visual Basic] または [Visual C#] を展開し、[Office] を展開して、[2010] (Office 2007 を使用している場合は [2007]) をクリックします。 4.[テンプレート] ペインで、[Excel 2010 アドイン] (または [Excel 2007 アドイン]) をクリックします。 5.[テンプレート] ペインの最上部を見て、[ターゲット フレームワーク] ボックスに [.NET Framework 4] が表示されていることを確認します。 6.必要に応じて、[名前] ボックスにプロジェクトの名前を入力します。 7.[OK] をクリックします。 8.ソリューション エクスプローラーに新しいプロジェクトが表示されます。 などとあるのですが、まず私は「Visual Basic」しかインストールしていないので、 「[Visual Basic]を展開」は無視して良いのだと思うのですが、 「Office] を展開」の意味が分かりません。 上記のMicrosoftの説明は、「Express」版には適応されないのでしょうか? 今は、仕方ないので、 Dim x, y, z x = CreateObject("Excel.Application") y = x.Workbooks.Open("D:\Sample.xlsx") z = y.Worksheets(1) などとやっています(「VBScript」で勉強したやり方です)。 しかし、この方法は「いけない」と教えてもらいました。 (「遅延バインディング」と言うそうで、 いろいろと問題があるそうです。) どなたか、私のように「Visual Basic 2010」しかインストールしていない状態で Microsoft Officeを利用する方法が掲載されたサイトをご存じの方がおられましたら、 お教えください。 よろしくお願い致します。

  • 印刷ダイアログを表示させたくない

    VB6.0でWORDファイルを印刷する機能を作成しています。 ボタンを押して指定のファイルを印刷する際、 完全にバックグラウンドで印刷したいのですが、 どうしても「印刷中」のダイアログが出てしまいます。 ソースは以下のとおりです。 Dim wd As Word.Application Set wd = CreateObject("Word.Application") wd.Visible = False wd.Documents.Open FileName:="D:\sample.doc", ReadOnly:=True wd.Options.PrintBackground = False wd.ActiveDocument.PrintOut wd.ActiveDocument.Close wd.Quit Set wd = Nothing ダイアログを制御するプロパティは存在しないのでしょうか? ご指導のほどよろしくお願い致します。

  • 遅延バインディングを使用できません!の回避方法?

    VB.Net の初学者です。 Sub Main() でのデータ型、演算子、式等の確認をしているレベルです。 今回の質問は、ArrayList の疑似的な2次元配列でのエラーの回避要領についてです。 'Option Strict On ' ============================== ' FileReadToArrayLists のテスト ' ============================== Sub Main()   Dim aAttachs As New ArrayList   FileReadToArrayLists("D:\Temp\付属一覧.csv", aAttachs)   Debug.Print(aAttachs(0)(0))   Debug.Print(aAttachs(0)(1))   Debug.Print(aAttachs(0)(2))   Debug.Print(aAttachs(0)(3)) End Sub [イミディエイト ウインドウ] 品番001 品番001用付属1 品番001用付属2 品番001用付属3 ========================================================== Option Strict On では遅延バインディングを使用できません! ========================================================== >Array には複数の次元を指定できますが、 >ArrayList または List<(Of <(T>)>) の次元は常に 1 次元です。 「もし、もしではあるが、配列そのものをリストの項目としたら・・・」 「それも 1 次元じゃーないか・・・」 と、考えたまでは良かったのですが・・・。 上記のエラーの回避要領がわかりません。

  • ステータスバーに「処理中 **/**件」表示

    フォルダ内に複数あるCSVファイルを一つのエクセルにまとめるマクロを検討中で ホームページで自分が作成したいマクロに似ていたものがあったので流用して考えいます。 やりたい事: フォルダ内のファイル件数をカウントしステータスバーに 「処理中 **/**件」 と全体のどれだけ処理が進んでいるか表示をしたいです 完了したら「処理 完了」に変更したいです 分からない事: 一番下の辺にある MsgBox "ファイル数は" & fc & "件です。" の中のfcが全ファイル件数が表示されるんですが そのfcを使用して 初めの方にある Application.StatusBar = "処理実行中 " & cntRec & "/" & fc & "件" の中のfcにカウントした数字が表示されません 表示する方法を教えてください Private Functionが何かあるとは思っていますが、理解できなくて・・・ '--------------------------------------------------------------------- Sub 集計マクロ()  色々処理している・・・ cntRec = cntRec + 1 Application.StatusBar = "処理実行中 " & cntRec & "/" & fc & "件" End Sub '--------------------------------------------------------------------- Private Function CSVQRY(ByRef ws As Worksheet, _  'csvからデータ読み出し? ByRef fs As String, _ ByRef rs As Range, _ ByVal sr As Long) As Long Dim cnt As Long On Error GoTo errChk With ws.QueryTables.Add(Connection:="TEXT;" & fs, _ Destination:=rs) .AdjustColumnWidth = False .TextFilePlatform = xlWindows .TextFileStartRow = sr .TextFileCommaDelimiter = True .Refresh False cnt = .ResultRange.Rows.Count .Parent.Names(.Name).Delete .Delete End With CSVQRY = cnt Exit Function errChk: CSVQRY = -1 End Function '--------------------------------------------------------------------- Private Function FDSELECT() As String 'フォルダ選択Function Dim obj As Object Dim ret As String Set obj = CreateObject("Shell.Application") _ .BrowseForFolder(0, "SelectFolder", 0) If obj Is Nothing Then Exit Function On Error Resume Next ret = obj.self.Path & "\" If Err.Number <> 0 Then ret = obj.Items.Item.Path & "\" Err.Clear End If On Error GoTo 0 Set obj = Nothing FDSELECT = ret ' 指定フォルダ内のcsv数をメッセージBoxに表示 Dim fc As Long 'ファイル数 Dim fm As String 'ファイル名 fm = Dir(ret & "\*.csv", vbNormal) Do While fm <> "" fc = fc + 1 fm = Dir() Loop MsgBox "ファイル数は" & fc & "件です。" End Function

  • VBSでAccess2000のバージョン確認

    VBScriptsでAccess2000のインストール状態を調べようとしています。 実行した環境は、以下です。  環境(1)   WinXP   ACCESS2000   ACCESS2010Runtime 作成したコードは以下です。 ------------------------ Dim objAcc Dim AccVer On Error Resume Next Set objAcc = CreateObject("Access.Application") If Err.Number = 0 Then AccVer =objAcc.Version Select Case AccVer Case 9 WScript.Echo "ご利用のPCにはAccess2000がインストールされています。" Case 14 WScript.Echo "ご利用のPCにはAccess2010がインストールされています。" End Select Else WScript.Echo "Access はインストールされていません" End If ----------------------------- 実行をすると、"Access はインストールされていません"とメッセージが出て、 ACCESS2000のインストールを認識していません。 CreateObject("Access.Application")をCreateObject("Access.Application.9") に変更しても同じ結果でした。 他の環境でも確認しましたが、以下の結果でした。  環境(2)   WinXP   ACCESS2010    ⇒"ご利用のPCにはAccess2010がインストールされています。"  環境(3)   WinXP   ACCESS2010Rintime    ⇒"Access はインストールされていません。" ただ、実際に確認が必要になるのは、環境(1)の状態でのAccess2000のインストール有無です。 上記の現象について情報をお持ちの方、または他に良い方法をご存知の方がおりましたら ご連絡を頂ければと思います。

  • Excelの複数シートからcsvファイルを出力

    Dim objXL Dim f Dim m Dim ws Set objXL=CreateObject("Excel.Application") 'objXL.Visible=True objXL.DisplayAlerts=False For Each f In WScript.Arguments objXL.WorkBooks.Open f For Each ws In objXL.ActiveWorkBook.Worksheets If ws.UsedRange.Rows.Count=1 and ws.UsedRange.Columns.Count=1 and ws.Cells(1,1)="" Then 'MsgBox ws.Name&"Empty" Else ws.SaveAs f & "." & ws.Name & ".csv", 6 End If Next objXL.ActiveWorkBook.Close Next objXL.Quit WScript.Quit 上記スクリプトファイルで ファイル名が「[元Excelファイル名].[シート名].csv」 のcsvファイルが出力されますが、これを ファイル名を「[シート名].csv」にするには どのようにすればいいのでしょうか。 ws.SaveAs f & "." & ws.Name & ".csv", 6 の箇所を ws.SaveAs ws.Name & ".csv", 6 に変更したのですが、うまくいきませんでした。

  • Document.SaveAsを実行しても保存されません

    VB6.0、Word2000で動作していたソースが、Word2007だと結果を保存しなくなりました。参照設定は、MicrosoftWord12.0ObjectLibraryに変更しました。 ためしに、 Public m_WordApp As Object Public m_WordDoc As Word.Document Set m_WordApp = CreateObject("Word.Application") ・・・・ ワードに出力するデータを作成。 ・・・・ m_WordDoc.Fields.Update m_WordApp.PrintPreview = True m_WordDoc.SaveAs strFileName, wdFormatDocument →出力されない。 上記のSaveAsの代わりに m_WordApp.PrintOut Background:=False m_WordDoc.Close SaveChanges:=False を実行した場合は、印刷できました。 何か設定が必要なのでしょうか。よろしくお願いいたします。