Тема: Отчёт в Word 2003 & 2007

На компьютере установлены 2003 и 2007 Оффисы.
Создаю отчёт и отправляю его в Ворд. Есть ли возможность  Выбора, в какой из них отправить?

Re: Отчёт в Word 2003 & 2007

> radan
Наверно по запросу условия:

If _условие№1 Then
Set oWord = CreateObject("Word.Application.11")
ElseIf  _условие№2 Then
Set oWord = CreateObject("Word.Application.12")
Else
Set oWord = CreateObject("Word.Application")
End if

По памяти без проверок
~'J'~

Re: Отчёт в Word 2003 & 2007

Спасибо, всё ОК.

Re: Отчёт в Word 2003 & 2007

> radan
Еще как-то юзают выбор через регистр, но я это
не знаю
~'J'~

Re: Отчёт в Word 2003 & 2007

Нашёл на C.
Reg_gc reg;
reg.SetFullPath();
  String ver2003=reg.GetString("SOFTWARE\\Microsoft\\Office\\11.0\\Excel\\InstallRoot","Path",trLocal);
  String ver2007=reg.GetString("SOFTWARE\\Microsoft\\Office\\12.0\\Excel\\InstallRoot","Path",trLocal);
  ver2003+="EXCEL.EXE";
  ver2007+="EXCEL.EXE";
  bool b2003=FileExists(ver2003);
  bool b2007=FileExists(ver2007);
  String EXCELEXE="";
  if(b2003) EXCELEXE=ver2003;
  if(b2007) EXCELEXE=ver2007;
  if(b2003 && b2007)
  {
    if (MessageDlg("Версия Microsoft Excel (2003 - Yes, 2007 - No)?", mtConfirmation, TMsgDlgButtons() << mbYes << mbNo, 0) == mrYes)
    {
      EXCELEXE=ver2003;
      b2007=false;
    }
    else
    {
      EXCELEXE=ver2007;
      b2003=false;
    }
  }

Re: Отчёт в Word 2003 & 2007

> radan
Спасибо, работает :

Imports System
Imports System.IO
Imports Microsoft.VisualBasic.FileSystem
Module Module1
    Sub Main()
        Dim response As MsgBoxResult
        Dim ver2000 As String = Microsoft.Win32.Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\10.0\Excel\InstallRoot", "Path", "")
        Dim ver2003 As String = Microsoft.Win32.Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\Excel\InstallRoot", "Path", "")
        ver2000 += "EXCEL.EXE"
        ver2003 += "EXCEL.EXE"
        Dim b2000 As Boolean = Microsoft.VisualBasic.FileIO.FileSystem.FileExists(ver2000)
        Dim b2003 As Boolean = Microsoft.VisualBasic.FileIO.FileSystem.FileExists(ver2003)
        Dim EXCELEXE As String = String.Empty
        If b2000 Then EXCELEXE = ver2000
        If b2003 Then EXCELEXE = ver2003
        If (b2000 And b2003) Then
            response = MsgBox("Версия Microsoft Excel (2000 — Yes, 2003 — No)?", MsgBoxStyle.YesNo, "Answer this question:")
            If response = MsgBoxResult.Yes Then  ' User chose Yes.
                EXCELEXE = ver2000 ' Perform use Excel2000.
                b2003 = False
            Else
                EXCELEXE = ver2003 ' Perform use Excel2003.
                b2000 = False
            End If
        End If
        Console.WriteLine(ver2003 & vbNewLine & ver2000)
        Console.ReadLine()
    End Sub
End Module

~'J'~