アプリ版:「スタンプのみでお礼する」機能のリリースについて

恥ずかしながら、初心者でどうしたらいいのわからず困っています。

エクセルVBAでコマンドプロンプトを立ち上げたいのですが、
どのように書いたらよろしいのでしょうか。

初心者なもので、
Sub test()

End Sub
の間にどのように記述したらよろしいですか。

また、エクセルのあるセルに入力した文字をコマンドプロンプトへ
転記する方法を教えてください。

全くの初心者ですので、質問内容が不明かも知れません。。。

A 回答 (5件)

次は、アクセサリの電卓を起動するサンプルコードです。



Sub test()
  MsgBox DosCommand("calc")
End Sub

Public Function DosCommand(ByVal CommandText As String) As Boolean
  DosCommand = VBA.Shell(VBA.Environ("COMSPEC") & " /C " & CommandText, 6)
End Function

エクセルからのデータの取得は、次のようにして可能です。

<D:\Sales2005\営業報告書.xls>のシート<営業報告書>のレンジ<C9>の値を取得します。

Private Sub コマンド0_Click()
  MsgBox GetExcel("D:\Sales2005\営業報告書.xls", "営業報告書", "C9")
End Sub

Public Function GetExcel(ByVal xlFile As String, _
             ByVal shName As String, _
             ByVal rnName As String) As String
On Error GoTo Err_GetExcel
  Dim xlApp  As Object
  Dim xlBook As Object
  Dim strData As String
  
  Set xlApp = CreateObject("Excel.Application")
  Set xlBook = xlApp.workbooks.Open(xlFile)
  GetExcel = xlBook.Worksheets(shName).Range(rnName).Value
Exit_GetExcel:
On Error Resume Next
  xlBook.Close
  xlApp.Close
  Exit Function
Err_GetExcel:
  MsgBox Err.Description
  Resume Exit_GetExcel
End Function

この回答への補足

申し訳ございません。

参照方法です。

補足日時:2006/09/02 16:59
    • good
    • 0
この回答へのお礼

ありがとうございます。

試してみます。
あと、NO3の御回答でコマンドプロンプトの
立ち上げ方法ありがとうございました。

お礼日時:2006/09/02 16:45

s_husky です。



コマンドプロンプトの打ち込みを省力化したいならばバッチファイルでやればと思います
例えば、次のような<dropdb.bat>はメモ帳で編集しています。
これを、デスクトップに貼り付けておけばクリックするだけで実行できます。
なお、バッチファイルにはパラメータも組み込めます。

【DropDB.bat】

osql -E -S LAVIE -d master -i DropDb.sql -o osql.txt
osql -U sa -d master -i DropDb.sql -o osql.txt -P
start osql.txt
    • good
    • 0

初心者という事ですが、だとしたら何故コマンド・プロンプトが必要なのか教えてください。


理由によっては、わざわざコマンド・プロンプトなど立ち上げずに済んでしまう事もあります。
    • good
    • 0
この回答へのお礼

ありがとうございます。

コマンドプロンプトが必要なのは、
海外のソフトで自分が作ったプログラムをコンパイルする時、
(コマンドを打ち込んでコンパイルする)
説明書には『コマンドプロンプトからコマンドを打ち込んでコンパイルして下さい。』と書いてありました。

実際、今もその方法を使っているのですが、
コマンドプロンプトから、打ち込むのが手間なので
VBAを組んで一気にしようと考えております。

初心者が、このような無謀な事を挑戦するのが、
間違っているのかもしれませんが。。。

お礼日時:2006/09/02 16:56

s_husky です。



後半は、チクツと的外れでした。
ただ、エクセルのVBAでアクティブなシートを参照するだけですと、

Private Sub CommandButton1_Click()
  MsgBox Me.Cells(1, 1)
End Sub

この回答への補足

参照したアクティブなシートを
コマンドプロンプトに転記する方法はどうしたら。。。

また、コマンドプロンプトの最初の2行に以下のような
表記がされます。

「ドライブ C のボリューム ラベルは ****** です
ボリューム シリアル番号は ******** です」

これは、パスが悪いのでしょうか?
下記のように入力しました。

Shell "cmd /k cd C:\Documents and Settings & dir"

補足日時:2006/09/04 21:47
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2006/09/04 21:46
    • good
    • 0
この回答へのお礼

ありがとうございます。

リンク先見させていただきました。
書いてあることがをしっかり理解するには、
もっと基本的なことから勉強しないといけないと痛感しました。

お礼に付け加えるのは失礼ですが、
初心者が勉強しやすいお勧めの本はありますか。
本屋さんに言っても一杯ありすぎてどれを
選んだらいいのかわかりません。

お礼日時:2006/09/02 16:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す