エクセル(VBA)について質問です。


現在ハイパーリンクの設定をして、URLをクリックするとそのリンク先に飛ぶ事が出来るようにしているのですが、次はソフトを起動させるようにしたいと考えています。

行いたいことは、ハイパーリンクをクリックするとFFFTPというソフトを起動し、FFFTPの指定してある場所のURLを入力、そしてその画面を開くというものです。

以下のような流れになります。

http://oskuni7.sakura.ne.jp/hatena/question11.htm

お手数をおかけしますがそのようなことは可能でしょうか?

もし可能でしたらプログラムを時間があるかた書いていただけないでしょうか。

お手数をおかけしますがどうぞよろしくお願いいたします。

回答の条件
  • 1人30回まで
  • 登録:2009/01/18 15:46:34
  • 終了:2009/01/21 06:40:41

ベストアンサー

id:pahoo No.2

pahoo回答回数5960ベストアンサー獲得回数6332009/01/18 20:38:58

ポイント100pt

指定されたファイルを開くことができません というエラーが発生してしまいます

ごめんなさい。Excelのリンクについて勘違いしていました。

下記の WSH ファイルを "C:\hoge.vbs" にセーブし、Excel のハイパーリンクに "C:\hoge.vbs" としてください。

Dim WshShell
Set WshShell = CreateObject("Wscript.Shell")
WshShell.Exec "C:\Program Files\ffftp\ffftp.exe ftp://あああ:いいい@www1559.aaa.ne.jp/home/oskuni7/www/hatena/"

ffftp 単独であれば Excel のハイパーリンクに "file:///C:\Program Files\ffftp\ffftp.exe" を書けば FFFTP が立ち上がるのですが、パラメータがある場合には WSH を使う必要があるようです。

id:aiomock

ご回答ありがとうございます。

プログラム実行できました。ありがとうございます。

2009/01/19 20:16:14

その他の回答(2件)

id:pahoo No.1

pahoo回答回数5960ベストアンサー獲得回数6332009/01/18 16:43:11

ポイント27pt

ご質問のリンク先が 404 エラーになるので、以下、想像で回答している部分があることをご了承ください。


Excelのリンク先を下記のように設定すればできます。

[FFFTPの存在するフルパス名\]ffftp.exe ftp://[FTPユーザー名]:[FTPパスワード]@[FTPサーバ名][フォルダ名]

[]は説明の便宜上、記しているだけです。実際には必要ありません。

フォルダ名は、FTPサーバから見たときのものです。URLと同じとは限りません。


なお、この方法ではFTPパスワードが丸見えになってしまうので、セキュリティの観点から安全とは言えません。


参考サイト

id:aiomock

ご回答ありがとうございます。

実行してみたのですが指定されたファイルを開くことができません というエラーが発生してしまいます。

例えば

フルパス名:C:\Program Files\ffftp

FTPユーザー名:あああ

FTPパスワード:いいい

FTPサーバー名:www1559.aaa.ne.jp

フォルダ名(指定したい場所):/home/oskuni7/www/hatena/

の場合は

C:\Program Files\ffftp\ffftp.exe ftp://あああ:いいい@www1559.aaa.ne.jp/home/oskuni7/www/hatena/

のようにしてみたのですがエラー続いています。

どのようにすればよろしいでしょうか。

2009/01/18 17:37:33
id:pahoo No.2

pahoo回答回数5960ベストアンサー獲得回数6332009/01/18 20:38:58ここでベストアンサー

ポイント100pt

指定されたファイルを開くことができません というエラーが発生してしまいます

ごめんなさい。Excelのリンクについて勘違いしていました。

下記の WSH ファイルを "C:\hoge.vbs" にセーブし、Excel のハイパーリンクに "C:\hoge.vbs" としてください。

Dim WshShell
Set WshShell = CreateObject("Wscript.Shell")
WshShell.Exec "C:\Program Files\ffftp\ffftp.exe ftp://あああ:いいい@www1559.aaa.ne.jp/home/oskuni7/www/hatena/"

ffftp 単独であれば Excel のハイパーリンクに "file:///C:\Program Files\ffftp\ffftp.exe" を書けば FFFTP が立ち上がるのですが、パラメータがある場合には WSH を使う必要があるようです。

id:aiomock

ご回答ありがとうございます。

プログラム実行できました。ありがとうございます。

2009/01/19 20:16:14
id:Mook No.3

Mook回答回数1312ベストアンサー獲得回数3912009/01/19 00:41:41

ポイント100pt

Pahoo さんのパクリなので、ポイント不要ですが、

VBA でもシェルは使用できますので、下記のようにしてはどうでしょうか。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If InStr(Target.Value, "/home") = 1 Then
        CreateObject("WScript.Shell").Run """C:\Program Files\ffftp\ffftp.exe"" ftp://あああ:いいい@www1559.aaa.ne.jp" & Target.Value
        Cancel = True
    End If
End Sub

シートモジュールに上記のように設定すれば、

/home/で始まる文字列のあるセルをダブルクリックすると、ffftp を起動します。

「ftp://あああ:いいい@www1559.aaa.ne.jp」の部分は、正しい情報にしてお試しください。

id:aiomock

ご回答ありがとうございます。

試させていただきます。

FFFTPについて残りの質問があるのですが、例えばFFFTP上にあるエクセルにアクセスし、そのエクセルを開き、データ入力後更新、そのデータをFFFTP上で反映されるということをしたいのですが、どうしてもFFFTP上にあるエクセルを保存し更新するということが出来ないのですが、そのようなことは可能でしょうか?

2009/01/19 12:05:17
  • id:load77
    顧客リストダダ漏れですがw
    しーーーらないっと
  • id:aiomock
    load77 さん

    ご連絡ありがとうございます。

    サーバーから個人情報をすべて削除させていただきました。

    またパーミッションもかけさせていただきました。

  • id:Reiaru
    ご質問とは関係ありませんが、

    http://oskuni7.sakura.ne.jp/

    に対して直接アクセスしますと、見えていいのかどうかよく分からない物も見えてしまっている様な気がします。

    .htaccess を記述して制限をかけるのが一番良いと思いますが、
    取りあえず sakura のファイルマネージャーから以下の様に設定しておいた方が宜しいのではないでしょうか?

    「ウェブアクセスの設定 → Index ファイル → ファイルが存在しない場合の動作 → アクセスを拒否する」
  • id:mue
    http://oskuni7.sakura.ne.jp/hatena/question11/question11.htm
    御質問中のurlは、上記の誤りでしょうか?
  • id:aiomock
    Reiaru さん

    ご連絡ありがとうございます。

    見えてもいい部分は反映させ、その他部分セキュリティをかけてみました。

  • id:aiomock
    mue さん

    URL間違っております。

    ご指摘いただいた

    http://oskuni7.sakura.ne.jp/hatena/question11/question11.htm

    になります。
  • id:Mook
    FFFTP で見えているファイルリストは、フォルダとは別のものです。
    ローカルにあるファイルはそのようにできますが、サーバにあるファイルは共有しているわけでは
    ありませんのでできません。サーバ上のファイルを開いたものは、いったんローカルのテンポラリ
    にダウンロードしたものを開いているので、それを保存してもサーバ上は更新されません。

    そもそものなのですが、EXCELファイルのようなものをWebServer 上で管理する必要があるのですか?
    単にバックアップとしておきたいのであれば、ローカルをマスタにしてそれを定期的にアップすれば
    良いのではないでしょうか。

    もちろん、先日のような問題が起きないよう、セキュリティは注意して設定の上運用する必要が
    ありますが。
    直接関係ない話ですが、Web でファイルやフォルダが見える状態は、好ましくないように思います。
  • id:aiomock
    Mookさん

    ご回答ありがとうございます。

    サーバー上にあるエクセルに対し、自分以外のものがその場所へアクセスしてファイルをいじれるし、見れることも出来るというのが理想です。

    いずれはPC内のデータがすべてサーバー上にあり、サーバーがHDDの様な役割をしてくれることを希望しています。
    それを何人かで共有するということをしたいです。

    バックアップはバックアップで別のサーバーの場所へ自動的に保存される。

    そのような感じにしたいのですが。

    そのようなことは不可能でしょうか?

    ファイルやフォルダが閲覧できる状況に関しては、改善させていただきます。。
  • id:Mook
    やりたいことは理解できますし、そういう用途はもちろん存在しますが、
    その領域を WebServer の公開領域で行うことが問題でると思います。

    使用者だけがアクセス可能なフォルダを用意し、単にそこでファイルを共有
    すればよいのではないでしょうか。
    ただし、同時に複数の人が同じファイルを更新しないようにする必要があります。

    イメージとしては、下記の用に構築すればよいのではないでしょうか。

    【ftp のroot】―+
            |
            +―【共有フォルダ】―+―【データのやり取りA】
            |          |
            |          +―【・・・B】
            |          |
            |          +―【・・・C】
            |
            +―【WEB 領域】―――+―【今までのWeb フォルダ階層A】
                       |
                       +―【・・・B】
                       |
                       +―【・・・C】
  • id:aiomock
    Mook さん

    ご回答ありがとうございます。

    そしてアイデア頂きます。

    サーバーでファイル共有する形をとりたいと思います。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません