[[20100227101555]] 『ハイパーリンク設定セルデータをユーザーフォーム』(キョッチャン) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ハイパーリンク設定セルデータをユーザーフォームで指定して開く』(キョッチャン)
 WindowsXP、Excel2003

 新しいタブを作成しました。内容は変わっていますが、表題は同じにしました。

 ichinoseの質問にお答えいたします。

 まずフォルダ「新しいフォルダ」を共有しています。それぞれの住所を説明いたします。
新しいフォルダ       C:新しいフォルダ
フォルダ「台帳」      C:新しいフォルダ¥台帳
ファイル「Book1」   C:新しいフォルダ¥台帳¥Book1
フォルダ「ハイパーリンク」 C:新しいフォルダ¥台帳¥ハイパーリンク
リンク先ファイル「A1」  C:新しいフォルダ¥台帳¥ハイパーリンク¥A1
リンク先ファイル「A2」  C:新しいフォルダ¥台帳¥ハイパーリンク¥A2
   ・             ・
   ・             ・

 このような構成になっていました。
これをBook1をC:新しいフォルダ¥台帳¥ハイパーリンク¥Book1と
したところ、Book1からリンク先を変更してリンクしたファイル「A1」の
コマンドボタンをクリックすると正常にBook1に戻りました。他のPCでも
正常に作動いたしました。しかし以前にも説明しましたが、Book1の住所が
変わっているためこれを修正しなければなりません。Book1からリンクしている
ファイルが500個以上ありこれを1個1個修正するとなると、修正期間中共有を
はずし行わなければなりません。非常な時間を費やさなければなりません。また
停止時間中業務にも支障をきたします。
 そこで相談です。Book1の住所変更をせずともエラーの出るPCをカバー
するマクロがないか、またBook1の住所変更後のハイパーリンク設定を時間を
かけずまとめて変更する方法はないでしょうか。

 私には時間と労力をかければ共有しているPCがすべて正常に作動する方法が
マクロを使用していないので、邪道かも知れませんが見えてきました。

 ただひとつ残る疑問は同じバージョンのPCでありながらマクロが正常に作動する
ものとしないものがあるということです。 (キョッチャン)

 HANAさんの質問にお答えいたします。PCは社内ネットワークですべてがつながっています。PCの台数と
しては50台近くあると思います。しかしデータ変更に常用しているPCは7台です。今問題視してる
エラーの発生するPCは7台中1台でおみとうしどうり大元のBook1を設定しているPCです。

 このような環境で使用しているので、今回の問題に関係あるかどうかわかりませんが、Book1を
開くためのパスワードを設定しています。これも少々片手落ちでありますが。(キョッチャン)

 Book1とハイパーリンク先ブックの関係はわかりました。

 このエラーとなるPCにて

 次にフォルダが C:新しいフォルダ¥台帳の下にBook1があるとき、
 ハイパーリンクが設定されているセルを 右クリック----「ハイパーリンクの編集」をクリックしてください。

 ブックを共有しているとハイパーリンクの編集はできないので、共有を解除して確認してください。

 ハイパーリンクの編集をクリックすると、編集ダイアログが表示されますが、このとき
 アドレスと言う箇所には、何が表示されていますか?

 エラーが発生していない正常に作動している他のPCで同じ事を
 行うと(一度、共有解除して)、編集ダイアログのアドレスと言う箇所には、
 何が表示されていますか?

 どうしても再現ができないので 関係ないかもしれませんが、上記のこと投稿してみてください。

[[20100210194102]]

 ここの続きです。

 ichinose


 icinoseさん有難うございます。

 正確を期すため月曜日に現場に戻って確認いたします。返事は月曜日以降になりますが、
ご容赦ください。

 ただ共有しているブックでハイパーリンクは設定でき設定したハイパーリンクも正常に作動します。
また共有を解除するとフォルダ「ハイパーリンク」 C:新しいフォルダ¥台帳¥ハイパーリンクも
共有を解除されますのでハイパーリンクでリンクするとエラーとなります。共有しているときBook1とハイパーリンクフォルダ
を作動させているPCにドラッグアンドドロップでデスクトップにでも落とし込みをしての確認でもOKですか。

 現状はBook1を「送る」でディスクトップに送り、矢印マークのついたアイコンで置いて
おります。こうすることにより、どのPCでもBook1を編集できるからです。

 ただこれで少々不便はあります。Book1を最初に開かないと編集して上書きしたときコピーBook1が作成
されます。2番目以降にBook1を開くと「読み取り専用」となるからです。
 
 (キョッチャン)

 ここに書いていたコメントですが一旦削除します。

 (HANA)

 で、気を取り直して書き直しですが。。。

 先に気になるところを再掲載。

 ちなみに、ほかのPCも そのPCのフォルダのファイルを直接開いているのでしょうか? 

 >共有を解除されますのでハイパーリンクでリンクするとエラーとなります。
 これが良く分かりません。
 現在 エラーについて話をしているので、そのエラーと区別するために
 どういったエラーになるのか、書いておいていただけると良いと思います。
   「アクセス権が無い」とか「開けませんでした」とかかな?

 >共有しているブックでハイパーリンクは設定でき
 ということですが、ヘルプにも ブックを共有した状態で
 ハイパーリンクの編集は出来ないと 書いてあると思います。

 最初のご説明文では
 >1個1個修正するとなると、修正期間中共有をはずし行わなければなりません。
 と書いておられるので、共有のままでは修正出来ないのですよね?
 再度、確認してもらうと良いのではないかと思います。
  ファイルの共有とフォルダの共有を混同されている?

 以下、修正も含め。。。

 これまでのご質問(前スレ)を読み返してみたのですが
 前回のエラーに関する事か今回のエラーに関する事か
 また、実際にどのような作業をなさったのか
 良く分からないので、重複するとは思いますが
 根気良く教えていただければと思います。

 問題の解決につながるかどうか分かりませんが
 ハイパーリンクで開いた先のファイルに
 「戻る」マクロが登録されたボタンがあると思います。
 そのマクロがどの様になっているか、もう一度確認してみてもらいたいです。

 Book1が開いている状態で「Book1.xls!戻る」
 Book1が閉じている状態で「C:新しいフォルダ¥台帳¥Book1.xls!戻る」
 となっていますか?

 もしかして、Book1が開いていてもマクロ名が長くて しかも
「C:作業用フォルダ¥台帳¥Book1.xls!戻る」
      ~~~~~~~~~~~~~~こんな感じで
 違うフォルダのBook1のマクロが指定されていたりしませんか?

 これだと、フォルダが違いますが 同じ名前のファイルを開くことになるので
 エラーが表示されるのではないかと思います。

 「他のPCでは大丈夫」という点はクリアできませんが。。。
   他のPCは、新しいフォルダのBook1を開いているつもりで
   実際は作業用フォルダのBook1を開いている・・・なんて無いですよね。

 問題のブックで、ボタンでマクロを実行するのではなく
 Alt + F8 から選んでマクロを実行した場合はどうなのかも
 試してみていただければと思います。

 ちなみに、問題のブック群のBook1.xls には
 '------
Sub 戻る()
    ActiveWorkbook.Close
    Workbooks("Book1.xls").Activate
    Worksheets("sheet1").Activate
End Sub
 '------
 のマクロが登録されているのですよね?

 (HANA)

 HANAさん有難うございます。

 私の質問を再度書きます。

 Book1に設定したハイパーリンクでファイル「A1」にリンクいたします。
Book1に登録したマクロ
Sub 戻る()
    ActiveWorkbook.Close
    Workbooks("Book1.xls").Activate
    Worksheets("sheet1").Activate
End Sub
をファイル「A1」にコマンドボタンを作成しこれに「戻る」を登録し、ボタンを
クリックするとBook1を常用しているPC7台のうち特定の1台で
「2重に開くことができません」と表示されBook1に戻れません。他の6台では
同じ行動をしても正常に作動いたします。

 私の会社では50台以上のPCを使用していますが、すべてにPCNO.が
設定されています。これらすべてが社内ネットワークでつながれ社内PC同士の
メールのやり取りができます。また社内情報等閲覧したりそれに書き込むことも
できます。通常のインターネットも使用できます。 
 ここで「共用」と言う言葉を誤解して説明している部分がありそうに思え
そのため皆さんの認識が違った方向に向いている部分もありそうなので、
私の実際に行った「共用」作業を箇条書きで書きます。

 1.Book1を所有しているPC(仮にこのPCNO.を「PC123」
とします。)で、フォルダ「新しいフォルダ」にファイル「Book1」とフォルダ
「ハイパーリンク」を収納しこのフォルダに共有マーク(手受けマーク)をつけます。
 2.別のPC(PC124)でスタートボタンをクリックし表示されたアイコンの
うち「マイネットワーク」アイコンをクリックします。(ちなみに私が個人で
使用しているPCでは「マイネットワーク」アイコンは表示されません。)
 3.次のページが表示され表示されたアイコンのうち「ウィンドウズネットワーク」
アイコンをクリックします。
 4.登録されたPCのグループアイコンが表示されます。
 5.グループアイコンの内「PC123」を含むアイコンをクリックします。
 6.ここに登録されたPCNO.のアイコンが表示されますので。「PC123」を
クリックします。
 7.手マークのついた「新しいフォルダ」のアイコンが表示されるので、これを
クリックします。
 8.ファイル「Book1」とフォルダ「ハイパーリンク」が表示されます。
 9.ファイル「Book1」のアイコンを右クリックし出たアイテムの中から
「送る」を選択し送り場所をディスクトップに設定し実行します。
 10.ディスクトップに矢印マークの付いた「Book1」のアイコンが
作成されます。

 PC123以外の6台のPCでは上記のような作業をして、ディスクトップに
「Book1」のアイコンを作成しています。PC123は「新しいフォルダ」を
開き上記9の作業を行いディスクトップに「Book1」のアイコンを
作成しています。

 今までのやり取りの内、誤解のありそうな節があったので、記して見ました。
もし関係なければこのことは無視してください。

 (キョッチャン)

 まとめて書いていただき、有難う御座います。

 前スレから環境を変えて、現在ご説明の様にしてある って事かな。。。?
 それとも、前スレの段階から「共有」と言う言葉に行き違いが有った。。?とも思いにくいが。。。?
 と、疑問は残りますが、上記の様に書いていただけると 分かりやすいと思います。
  全角カタカナも、すんなり頭に入ってきます。(笑)

 >  他のPCは、新しいフォルダのBook1を開いているつもりで
 >  実際は作業用フォルダのBook1を開いている・・・なんて無いですよね。
 なんて書きましたが、常識的に考えると
  PC123のデスクトップにおいてあるショートカットのリンク先ファイルが
    確かにBook1.xls が開くのですが
  ボタンに登録されているマクロの保存先である Book1.xls とは
  違うBook1.xls に成っている
 と言う流れの方が、無理が無さそうに思います。

 一度エクセルを全て閉じておいて
 デスクトップのアイコンから、Book1を開き
 そのハイパーリンクから、A1ファイルを開き
 ボタンに登録されているマクロの名前を確認してみて下さい。
  その際、もしも「Book1.xls!戻る」と成っていない場合は
  ボタンの登録を変更するのではなく
  デスクトップのショートカットのリンク先ファイルを
  正しい物に変更して下さいね。

 (HANA)

 HANAさん早速のご返答有難うございます。

 明日現場のPCで確認のうえ結果を報告いたします。(キョッチャン)

 確認してきました。

 PC123のディスクトップのアイコンからBook1を開き
 そのハイパーリンクから、A1ファイルを開き
 ボタンのマクロ名前を確認して見ました。
 そこには
「 PC\\pc123\新しいフォルダ¥台帳¥Book1.xls!戻る」 となっていました。
 皆さんに指導いただいた内容によりますと、これでも正解のはずですが、ボタンをクリックすると、
 「Book1.xlsと同じ名前のファイルがすでに開いています。保存先が別のフォルダでも同じ名前の
ファイルを同時に開くことはできません。2つ目のファイルを開く場合は一方のファイルを閉じるか
またはいずれかのファイルの名前を変更してください。」と表示されました。(表示どうり記し
ました。)
 ちなみに、正常に作動するボタンのマクロの名前は「¥Book1!戻る」です。

 今日、一つの実験を行って見ました。

 ファイル「A1」をC:新しいフォルダ¥台帳¥A1 と変更して見ました。それで「Book1」の
「A1」に対するリンク先を変更してハイパーリンクで「A1」を開き「戻るボタン」クリックした
ところ、すべてのPCで正常に作動いたしました。逆に「Book1」を「C:新しいフォルダ¥台帳
¥ハイパーリンク¥Book1」 としても「PC123」は正常に作動しません。他のPCはこれでも
正常に作動しました。

 (キョッチャン)


 >「 PC\\pc123\新しいフォルダ¥台帳¥Book1.xls!戻る」 となっていました。
 >皆さんに指導いただいた内容によりますと、これでも正解のはずですが
 正解では有りません。

 Book1.xlsが開いているときは、そこの名前は
 「Book1.xls!戻る」の様に短く表示されているのが正解です。

 Book1のショートカットを右クリック→プロパティ(R)で
 プロパティを表示して下さい。

 ショートカットタブを開くと「リンク先(T)」が有ります。
 その中に直接 "PC\\pc123\新しいフォルダ¥台帳¥Book1.xls" を入れて
 開いてみるとどうでしょう?

 それと、話は二箇所で進めない方が良いと思いますよ?

 (HANA)

 >若い数字のものは歯抜けで設定していますので、とびセルに
 >設定したハイパーリンクをユーザーフォームで実行したところ、ユーザ−フォームで指定したブック
 >が開けませんでした。

 歯抜けって?

     A       B

 1  項目1     図番号
 2   a             1
 3
 4   a             2
 5
 6   a       3

 こんな感じですか?

 でもこれだと正常に作動しましたよ。

 Option Explicit
 Private Sub CommandButton1_Click()
    Dim rng As Range
    Dim f_no As Variant
    With ThisWorkbook.Worksheets("sheet1")
       Set rng = .Range("b2", .Cells(.Rows.Count, "b").End(xlUp))
       If rng.Row > 1 Then
          f_no = Application.Match(Val(TextBox1.Value), rng, 0)
          If Not IsError(f_no) Then
             If .Cells(f_no + 1, "b").Hyperlinks.Count > 0 Then
 '                On Error Resume Next  ここを一度コメント化して結果がどうなるのか記述してください

                .Cells(f_no + 1, "b").Hyperlinks(1).Follow
                On Error GoTo 0
             End If
          Else
             MsgBox "指定された図番号は見つかりません"
          End If
       End If
    End With
 End Sub

 これでどうにような結果になったかを詳細に記述してください。

 >ファイルを同時に開くことはできません。

 他のPCでは発生せず、特定のPCだけこの現象だとすると、???ですね?

 これに関しては、前に投稿した アドインを検討してください。

 ichinose


 HANAさん有難うございます。
 早速現場で確認いたします。
 話は二箇所で進めないほうが。ということにについてはわかりました。
この問題はかなり困難そうなため、マクロでの解決について私は少々あきらめの気持ちがありました。
HANAさんのマクロよる問題解決に対する執念に感服いたしました。私もこれに答えて行きますので
今後ともよろしくお願いいたします。

 ichinoseさんまた私の説明不足です。

     A       B

 1  項目1     図番号
 2   a             1
 3   a        2
 4   a             3
 5      a             4
 6   a       5

 の図番号は歯抜けではなくハイパーリンク設定の歯抜けな部分があります。ある図番号からは
100%設定していますが、それ以前のハイパーリンク設定はまれです。
 エラーの状態ですがユーザーフォームにこのハイパーリンク設定した飛びNO.を記入し
実行したとき(仮に3とします。)目次ページ「A3」にリンクしないのです。
エラー表示は出ません。連続にハイパーリンクが設定されはじめたNO.以降については
正常に作動いたします。これはすべてのPCにおいてです。
 それと正常に作動する部分があるので関係ないかも知れませんが、上下スクロールしたときでも
 項目、図番号が解るようにウィンドウの固定を設定しています。
 (キョッチャン)


 >それ以前のハイパーリンク設定はまれです。
 ん?わかりません。
 例
 Textbox1に 3と入力し、Commandbutton1をクリックしたとします。
 図番号3が入っている セルB4の位置は、取得できます。
 このセルB4にハイパーリンクが設定されいない ということですか?

 だとしたら、何も起こりません。コードは、ハイパーリンクが設定されていたら、
 リンク先に飛ばすという処理しかしていませんから・・・・。

 で、もしハイパ−リンクが設定されてない場合、どのようになればよいのですか?

 >目次ページ「A3」にリンクしないのです。

 目次ページA3 って? どこにあるのですか? そもそも何?

 この情報はどこを調べると 取得できるのですか?

 手動操作だと、どうするのですか?

 ichinose


 >目次ページA3 って? どこにあるのですか? そもそも何?
 C:新しいフォルダ¥台帳¥ハイパーリンク¥A3
 これを呼び出せばよいってことですか?

 だとしたら、ユーザーフォームを使わない場合は、どのようにしていますか?

 これをVBAでやるなら、Book1.xlsと目次ブック先の関係をはっきり規定しなければ
 なりません。

 ichinose


 ichinoseさん、HANAさん相談をしていた問題双方とも解決いたしました。

 まずユーザーフォームでハイパーリンクが指定できない問題。
 これは私の不注意により発生していました。B列に同じ番号を記入しその片方だけにハイパーリンクを
設定し、その番号をユーザーフォームで指定していたため、何の反応も示さないことが、解りました。
ほかの、孤立してハイパーリンクを設定している図番号をユーザーフォームで指定して実行しても
正常に作動いたします。

 次にエラーの出る特定のPCでBook1のショートカットタブの「リンク先」を正常に作動するものと
同じものを記入して、「A1」ファイルからボタンをクリックしてBook1に戻って見ました。
気持ちよくBook1に戻りました。ほかのPCでも正常に作動いたします。

 今回の皆さん方とのやり取りにおいてPC、マクロにおいてエラーが発生する時は必ず原因がある
(物事すべてにおいて同様のことが言えると思いますが)。必ずそれに対する解決方法がマクロで
有るということを勉強させていただきました。
 私は、マクロについては全くの素人です。ichinoseさんに教えていただいたマクロはその意味も
全く解らず、ただ貼り付けて実行していただけです。ただマクロ仕組みはおぼろげながら見えて
来ました。マクロがどういうものか理解して真のマクロのテクニックが習得できると思います。
 今後も勉強を続けたいと思います。また初歩的な質問をするかもしれませんがそのときは、
面倒見てください。

ichinoseさん、HANAさん今回は本当に有難うございました。(キョッチャン)


 ichinoseさんの方は、しっかりマクロのお話ですが
 私の方は、マクロの話しでは無いと思いますよ。

 一つだけ問題が有るなら、その一つと他のものと
 違うところを探してみて下さい。

 それから、エラーメッセージが出るなら
 何をしたときにそのメッセージが出るのか考えてみて下さい。

 まず、エラーメッセージに関しては
  「同じ名前のファイルを同時に開くことはできません。」
 と書いてある通り
   (何でか分からないけど、ボタンを押すと)
   同じ名前のブックを開こうとしている様だ。
 と分かりますね。
 ご丁寧に「保存先が別のフォルダでも」と言う但し書きまで有ります。

 試しに、デスクトップに ブックを一つ。
 デスクトップにフォルダを作成してその中にコピーを作る。
 (当然、同じ名前のファイルが二できる。場所は違いますが。)
 一つのブックを開いている状態でもう一つのブックを開くと
 同じメッセージが出ますね?

 一つのブックを開いている状態で、同じブックを開いても
 メッセージは出ませんし、出たとしても違うメッセージです。
  (当初、私はこちらのメッセージが出ていると思っていました。
   このメッセージならその中にしっかり「2重に開く」と
   言う文言が入っていますので。)

 同じメッセージが出るので、同じ事がおきている可能性は高いです。
 勿論「何でか分からないけど」が頭についた状態だとしても。。。

 でも、キョッチャンさんは前スレでも書いて居られましたよね?
  Book1を閉じた状態でボタンを押すと、Book1が勝手に開いてマクロが実行される。

 問題のPCも、ボタンを押すと、Book1が勝手に開こうとしている様ですね。
 実際は、メッセージが出て開けませんが。

 そこで何度か確認して貰いたいと書いたのが
  ボタンに登録してあるマクロ名
 です。

 Book1を閉じた状態なら
  問題の無いPCのマクロ名は長いです。
  問題の有るPCのマクロ名も長いです。
 ですが、Book1を開いた状態で、
  問題の無いPCのマクロ名は短いです。
  問題の有るPCのマクロ名は長いです。

 本当は、問題の有るPCのマクロ名も短くなるはずですよね?
 でも、短くなっていないのですから
  なんでか分からないけど、Book1を開いているのに開いていないと思っている
 と想像がつきます。

 ブックは直接開いているのではなく ショートカットで開いているので
 このショートカットが絶対アヤシイですよ。

 ショートカットのリンク先を変更して
 Book1を開き、A2ファイルを開いたとき
 ボタンのマクロ名は短くなりましたよね?

 エクセルが伝えてくれるメッセージをちゃんと受け取る。
   これは、エクセルを使う以上 マクロに限らず 大切な事だと思います。

 上手く行くものと上手く行かないものを見比べて違いを見つける。
   上手く行かないものしか無かったら、処理を簡単にして上手く行く物を作り
   段階を追って、処理を実際の物に近づけていったときに
   どこで上手く行かなくなるかを見極める。

 この二つがしっかり出来ると
   マクロ・数式・一般操作 全般を通して
 エクセルももう少し扱いやすくなるんだと思います。

 (HANA)

 HANAさん再々のご指導有難うございます。

 私は相談していたことが解決したので晴れやかな気持ちでBook1を扱っていました。会社での休憩時間
にこのコーナーに興味が沸いていたので開いてみました。そうしたら、私の投稿している位置が変わっ
ていました。開いてみるとHANAさんからのご返事でした。そのときは時間がなく、詳しい内容は読み取
れませんでしたが、自宅で再度確認したところ、非常に薀蓄の深い内容が記されていました。

 エクセルはエラーが発生したときは必ず何らかの反応を示してくれるのですね。それの反応に対して
使用者がどのようにそれを理解して対応するかによりエラーが解決できるかどうかが決まるのですね。
 エクセル(マクロ・数式・一般操作)に対してもっともっと勉強が必要と痛感し、
勉強しようと思います。私はまだまだエクセルの入り口にいる人間です。つまらない
質問をするかも知れませんが今後ともよろしくご指導のほどよろしくお願いいたします。

 PC
 この返事を書いていて、このコーナーの表題が「エクセルの学校」とされている意味が理解できま
した。HANAさんはこれを主在する人かこれに順ずる人とお見受けいたします(違っていたらゴメンナ
サイ)。このコーナーがますます発展し末長く続くことをお祈り申し上げます。
 どうしても返事を書きたくなって書いてしまいました。(キョッチャン)

 見て頂けて良かったです。。。
  せっかく書いても、見てもらえないとサミシイですから。

 そして、ご期待を裏切って申し訳有りませんが、私はこの掲示板の一利用者です。
 色々な事を勉強させてもらっているせめてものご恩返しとして
 色々な事を書いてみています。

 何か問題にあたったときに、別の方法を考えるのも大切だと思います。
 でも、その問題点が分かり解決策を講じる事が出来れば、一歩以上前進出来ると思います。
   問題が解決して一歩。後に起きる似たような問題にも
   対処出来る様に成るでしょうから、+α歩 ですね。

 とは言え、エクセルの言って来る事は理解に苦しみます。
 エクセル語が早く分かるようになれる様、お互いに頑張りましょうね!!
   せめて伝える方だけでも。。。

 沢山文句を言われたり 沢山言うことを聞いてもらえなかったりした方が
 より早くエクセル語を習得出来ると思います。
 耳を塞がずに、しっかり聞いて行きましょう。丁度今日は耳の日ですしね。

 こちらこそ、今後とも宜しく御願いします。

 (HANA)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.