advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 6617 for リンク (0.004 sec.)
[[20100210194102]]
#score: 3108
@digest: 96dd173dc8d025e769bd5b984b0edb23
@id: 47693
@mdate: 2010-03-03T00:58:03Z
@size: 49298
@type: text/plain
#keywords: 図番 (51073), キョ (50141), book1 (34927), 作動 (28885), イパ (27410), ーリ (23849), ハイ (19615), hyperlinks (18331), パー (17464), 正常 (17316), ョッ (16409), ichinose (15290), activate (10791), リン (10456), ンク (10394), 共有 (9620), チャ (8785), ブッ (7895), 発生 (7626), ッチ (7558), フォ (7504), コマ (7028), ャン (6912), ボタ (6864), ック (6471), エラ (6261), タン (6168), ォル (6015), workbooks (5942), マン (5931), ラー (5839), ーフ (5455)
『ハイパーリンク設定セルデータをユーザーフォームで指定して開く』(キョッチャン)
列Bに図番を記入しハイパーリンクを設定しています。この図番データをユーザーフォームテキストボックスで指定してハイパーリンクを開くマクロを教えてください。 Excel2003 WindowsXP ---- 仕様をはっきり記述してください。 例として B列にはどんなデータが配置されているか記述してください この時、1行目は、項目名だとか1行目からデータだとかもはっきり記述してください。 テキストボックスにB列にあるデータの中でリンクしたい値を入力するのですよね? 入力後、どのタイミングでプログラムを実行させるのですか? コマンドボタンを用意して、これをクリックしたら実行ですか? それともEnterキーが押されてたら実行ですか? 特定のハイパーリンクが設定されているのなら、例えばセルA1のハイパーリンクが設定されていて ハイパーリンク先にある目的のファイルをダウンロードし、適切なアプリケーションで表示するには、 Range("a1").Hyperlinks(1).Follow こんなコードで可能です。後は、テキストボックスに指定された内容でB列データを検索する方法が わかれば、完成です。方法は、Application.Match関数とかFindメソッドが考えられます。 これらの情報で検討してみてください。 ichinose ---- やっぱり質問の意味がわかりにくいようです。 A B C ・ ・ A 1 A 2 A 3 ・ ・ ・ ・ B列データそれぞれにハイパーリンクが設定されています。この図番データをユーザーフォームテキストボックスで指定してコマンドボタンでハイパーリンクを開くマクロを教えてください。 Excel2003 WindowsXP (キョッチャン) ---- では、新規ブックにて(Sheet1というシートがある)、試して見てください。 1 準備 ユーザーフォームを一つ作成してください。 ユーザーフォーム名--------UserForm1 テキストボックス----------TextBox1 コマンドボタン ----------CommandButton1 UserForm1には、上記二つのコントロールを貼り付けてください。 2 Sheet1にデータ設定 標準モジュール(Module1)に '================================================================= Option Explicit Sub データ設定() With thisworkbook.Worksheets("sheet1").Range("a1:b4") .Rows("1:4").Value = [{"項目1", "図番号";"a",1;"a",2;"a",3}] With .Range("b2") .Hyperlinks.Add Anchor:=.Cells, Address:= _ "http://www.excel.studio-kazu.jp/kw/20100210194102.html?t=213100" End With With .Range("b3") .Hyperlinks.Add Anchor:=.Cells, Address:= _ "http://www.excel.studio-kazu.jp/kw/20100210160952.html?t=164640" End With With .Range("b4") .Hyperlinks.Add Anchor:=.Cells, Address:= _ "http://www.excel.studio-kazu.jp/kw/20100209183814.html?t=192843" End With End With End Sub 上記のデータ設定を実行してください。Sheet1というシートに A B 1 項目1 図番号 2 a 1 3 a 2 4 a 3 こんなデータが作成されるはずです。尚、Excelでデータベースを作成する場合は、項目名を設ける ようにしてください。その方がExcelの機能を利用しやすいですから・・・・。 B列の数字には、このエクセルの学校から適当に選んだスレッドがハイパーリンクとして 設定されています。 それでは、実際に処理するコードです。 別の標準モジュール(Module2)に、 '================================================================== Option Explicit Sub main() UserForm1.Show End Sub 先に作成したUserForm1のモジュールには、 '================================================================== 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 以上です。 3 操作方法 mainを実行してください。UserForm1が表示されます。 TextBox1に、1と入力し、Commandbutton1をクリックしてください。 1に相当するリンクが表示されます。 同じように 2,3等を入力して試してみてください。 これでうまくいくようなら、コードを理解してご自分の実際のデータで試してください。 ichinose ---- ---- ichiniseさん有難うございました。おかげで期待どうり作動するようになりました。ただこのコードがどのような成り立ちでうまく作動するのか理解できておりません。他のマクロも応用するためよろしければご教授を特に下記の部分について。 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 ---- >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 Set rng = .Range("b2", .Cells(.Rows.Count, "b").End(xlUp)) 文字が大きかったので、ここが特にわからない ってことですか? これは、Sheet1のB列データ(図番号)が入っているセル範囲をrngという変数に取得するためのコードです。 .Cells(.Rows.Count, "b").End(xlUp) これは、B列の最下位行を選択した状態で Ctrl+↑キーを 押してみてください。 A B 1 項目1 図番号 2 a 1 3 a 2 4 a 3 上記のデータなら、3があるセルB4を選択しますよね? .Range("b2", .Cells(.Rows.Count, "b").End(xlUp)) は、Sheet1が上記のデータなら .Range("b2", "b4") ----→ B2:B4 と同じです。 If rng.Row > 1 Then 'これは、データが何もないと1を返しますから、1より大きかったら '検索処理をする データがないのに検索したって仕方ないですから・・。 f_no = Application.Match(Val(TextBox1.Value), rng, 0) '↑ワークシート関数のMatch関数をVBAコード内での使う場合の書式です If Not IsError(f_no) Then 'f_noがエラー値でなければ・・、つまりテキストボックスの内容で 'B列を検索した結果、見つかったら以下のコードを実行する 'Val(・・・としたのは、型を数値に変換しています If .Cells(f_no + 1, "b").Hyperlinks.Count > 0 Then '↑ハイパーリンクが設定されていないことも考慮しています 'f_no+1としたのは、f_noは、セルB2から数えた位置なので実際の行は、+1ですね On Error Resume Next '念のため、エラーが起きない処理 .Cells(f_no + 1, "b").Hyperlinks(1).Follow 'リンク呼び出し On Error GoTo 0 '念のためのエラー無視解除 こんなところでしょうか? Helpの存在を知っていますか? VBAのリファレンスが見ることが出来るはずです。 これを見ながら、コードの意味を調べるようにしてみては どうでしょうか? ---- 有難うございました。初心者のため完璧に理解したとは言いがたいですが、おぼろげながら理解は深まりました。今後のマクロ作成の参考にしたいと思います。ご回答いただいたのはichinoseさんだったのでしょうか。 ---- あっ、サインを久しぶりに忘れました。 ichinoseです。 最近、いろんな事忘れがちで・・・、思い出せないし・・・、やばいなあ。 ---- 単純なマクロがPCによって開かないのですが、なぜですか。 ActiveWorkbook.Close Workbooks("book1").Activate Worksheets("sheet1").Activate 数台のPCでデータを共有しています。 XP エクセル2003です。 実行すると、”インデックスが有効範囲にありません。”と表示されるPCがあります。マクロの1行めが強調されていますが、これは何の意味もありません。プレヴューで変換されています。 (キョッチャン) ---- エラーにならず、正常に作動するPCもいあるということですね? これ、共有を解除してもエラーになりますか? 共有時にエラーが発生した時、はっきりエラー箇所が特定できますか? 出来ないなら、例えば、 エラー発生が予測される箇所に 例えば Sub testtest() On Error GoTo err_proc 1: Workbooks("book1").Activate 'エラーが起こりそうな行に数字のラベルを付ける 2: Worksheets("sheet1").Activate Exit Sub err_proc: MsgBox Erl & " " & Err.Description End Sub これだとエラー箇所の特定ができます。 インデックスが有効範囲にありませんというエラーが、 Workbooks("book1").Activate ここで発生するなら、book1というブックが開いていない事を意味しますが、 その可能性を確認してください。 それと これ、別スレッドの方が良いのではないですか? ichinose ---- ありがとうございました。上記試してみました。ブックをダブルで開くことはできないという意味のコメントが出ました。Activatはブックをアクティブにすると理解していますので、ブックは開いているので正常に作動するはずです。このコメントはオープンとととらえていると思います。エクセル内での閉じるは正常に作動します。 5台のPCで試してみましたが2台が同様のエラーが出ました。またエラーが出るのはこのマクロだけです。他のマクロは正常に作動いたします。 PCにより差があるのはなぜか、もし原因がわかれば教えてください。 (キョッチャン) ---- >数台のPCでデータを共有しています まず、5台とも WindowsやExcelのバージョンなどは一緒ですか? 又、これは 「ツール」----「ブックの共有」で 「複数のユーザーによる同時編集と・・・・許可する」にチェックを入れた状態で使用する という意味ですよね? この時、2台でエラーが発生する ということですよね? そうだとしたら、エラーが発生するPCで共有を解除するとエラーどうなりますか? 変わりませんか? それともその場合はエラーにならない のですか? ここを確かめてください。 後は、具体的なエラー再現手順とエラーが発生するコードの掲載がないとわかりませんね!! ichinose ---- 有難うございます。会社で使用しているPCのため今は自宅でこの答えを拝見しているのでまだご指摘の作動は行っていませんが、今わかる範囲のことで状況を説明させていただきます。 マクロはノートPC(dynabook)で作成し容量の多いデスクトップPCに元データを写し共有しています。元のデータを保有しているPCでもエラーが発生します。 ブック1のシート1につぎのデータを作成し A B 1 項目1 図番号 2 a 1 3 a 2 4 a 3 B列の図番号にハイパーリンクリンクするブックを設定し図番号に関連したデータをこれに入れています。図番号をクリックし新たな必要データを書き込み上書きしハイパーリンクデで作成したブックにツールバー表示のフォームのボタンに ActiveWorkbook.Close Workbooks("book1").Activate Worksheets("sheet1").Activate のマクロを登録しこれを実行すると2台のPC(双方ともディスクトップ型ちなみにメーカーはSONYとFUJITU)でエラーが発生します。バージョンはWindowsがXP、Excelは2003。5台うち1台のバージョンはVISTA、2007ですがこれは正常に作動します。 (キョッチャン) ---- まず、いろんな箇所に疑問を感じます。 キョッチャンさんのいう共有しているブックというのは、 A B 1 項目1 図番号 2 a 1 3 a 2 4 a 3 このご質問のもとになったシートがあり、 ユーザーフォームがあり、ハイパーリンク処理を しているブックのことですね? で、 ActiveWorkbook.Close Workbooks("book1").Activate Worksheets("sheet1").Activate というコードは、ハイパーリンクで呼び出されたブックのシートに配置されたボタンに登録されているということですね? もし、そうだとしたら・・・・。 ハイパーリンクで呼び出す対象は、Excelブックだったということですか? なら、普通に Workbooks.Open ファイルパス で呼び出せばいいのに という疑問がひとつ。 >ActiveWorkbook.Close >Workbooks("book1").Activate >Worksheets("sheet1").Activate このコードを呼び出されたブックに記述しているとしたら、その意味は? という疑問 これは、呼び出されたブックを閉じて、book1という(上記の表やユーザーフォームがあるブック)をアクティブにして、 そのブックのSheet1をアクティブにするという意味ですか? だとしたら、このようなコードにはしない方がよいです。 この辺りを確認のコメントお願いします。 違うところがあるなら、はっきり記述してください。 ichinose ---- ご回答有難うございます。設定はご理解どうりです。このマクロに対する私の理解はハイパーリンクテで指定のBookにリンクしてもBook1はタスクバーに収納されてCloseされていません。これをBook1をOpenで支持するとダブルオープンとなりエr-します。それと私の大きな疑問はこのマクロが正常に作動するPCとそうでないPCがある炉言うことです。マクロが適切でなければどのPCでもエr-が発生してもよいと理解しています。 (キョッチャン) ---- ichinoseさんご多忙のようですね。その後いろいろ確認してみました。.Activateを含むマクロが作動しないようです。これに反応するプログラムがエラーするPCにインストールされているとか、又は、逆に違うプログラムのインストールが必要とかがあるのでしょうか?まだそこまでは確認していません。もしこれらに関係なく.Open.Activateにかわる言語があれば教えてください。お願いいたします。(キョッチャン) ---- 代替案の用意は、ありますが、エラー原因がまだつかめていないので・・・。 まず、ブックの共有とは >又、これは 「ツール」----「ブックの共有」で >「複数のユーザーによる同時編集と・・・・許可する」にチェックを入れた状態で使用する >という意味ですよね? という質問の答えがないですねえ!! そうだとしたら、これを解除したときも同じエラーが発生しますか? それから、リンクされたブックには、ボタンを用意して、何故 ActiveWorkbook.Close Workbooks("book1").Activate Worksheets("sheet1").Activate このようなコードを登録したのですか? 普通に閉じるボタンで閉じればよいのに・・・。 これは、何故ですか? それから、もう一つこのリンク元のbook1 元々は、ユーザーフォームを介してリンク呼び出しを行っていますね? 呼び出されたブックが表示された後エラーになるまでの操作手順は? 一度、ユーザーフォームを閉じるのですか?そうだとしたら、そこから細かく操作手順を記述してください。 ichinose ---- ichinoseさん失礼いたしました。答えが見つからないので少々イライラしておりました。 ブックの共有はご説明のとうりです。共有ブックは常に他の作業者が使用してはずす ことができないので、関連データをPCに落とし込み独立して作動するようにして。テストを しましたが。やはりエラーが出ました。 このデータの構成を説明いたします。 まず元フォルダを作成しこの中にBook1とリンク先のファイルを収納したハイパーリンクフォルダを入れて おり、元フォルダを共有しております。Book1は台帳的な役割で商品a1の数字をクリックすると 商品a1の目次的なファイルにリンクします。このファイルにまたハイパーリンクを設定し個々のデータにリンク するようにしています。 ActiveWorkbook.Close Workbooks("book1").Activate Worksheets("sheet1").Activate 上記ボタンで必ず目次ページはBook1に戻るようにしています。PC本体の「閉じる」は閉じ たとき以前開いていたファイルが開くためこれを防ぐためです。またBook1は「送る」で ディスクトップにショートカットを作成しています。最初の質問のユーザーフォームでハイパーリンクを指定する のは、Book1のB列に設定しているハイパーリンクを開くためです。これはBook1のデータが6000 近くありリンクしたい番号をスクロールして探すのがめんどうなためです。またBook1には 各図番号に関連した代表的なデータも列を指定して入れております。図番号がわからな いときはわかる項目にオートフィルタを使用して検索し図番号を絞り込むマクロを組みそこから 図番号を探すようにしています。 ちょっと長くなってしまいました。質問のポイント にずれてなければいいのですが。(キョッチャン) ---- >やはりエラーが出ました。 なるほど、共有が原因ではなさそうですね!! Excel2002で、新規ブックの標準モジュール '==================================================================== Sub ボタン1_Click() ThisWorkbook.Close False Workbooks("存在しないブック.xls").Activate Sheets("sheet1").Activate End Sub 上記のボタン1_Clickを適当なシートに配置したコマンドバー「フォーム」のボタンに登録します。 クリックして上記のコードを実行してみると、エラーが発生しません。 存在しないブック.xls というブックは、開いていないブックです。 つまり、ThisWorkbook.Close Falseが実行され、それ以降のコードが実行されていない事になります。 バージョンによって、この辺りのメカニズムに違いはありませんか? 取りあえず以下のようにコード追加してください。 1 項目1 図番号 2 a 1 3 a 2 4 a 3 上記のような表とこのB列にハイパーリンクを設定している ユーザーフォームやリンク呼び出しを行っているコードがあるブック(Book1)に、 いいかのコードを追加してください。 thisworkbookのモジュールに(標準モジュールではないですよ) '============================================================================= Option Explicit Private WithEvents app As Application '=============================================================================== Private Sub app_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As Boolean) Dim ans As Long If Not Wb Is ThisWorkbook Then If Wb.Saved = False Then ans = MsgBox("'" & Wb.Name & "'への変更を保存しますか?", vbYesNoCancel + vbExclamation) If ans <> vbCancel Then On Error Resume Next If ans = vbYes Then Wb.Save End If Wb.Saved = True On Error GoTo 0 Else Cancel = True End If End If If Cancel = False Then With ThisWorkbook .Activate .Sheets("sheet1").Activate End With End If End If End Sub '==================================================================== Private Sub Workbook_BeforeClose(Cancel As Boolean) Set app = Nothing End Sub '===================================================================== Private Sub Workbook_Open() Set app = Application End Sub 上記コードを追加し、保存後、一度閉じてから、再度開いて確認してください。 尚、呼び出されたブック側で作成している フォームのボタンや登録しているVBAコードは削除してください。 閉じるときは、ブックの閉じるボタンをクリックしてください。 ハイパーリンクが設定されている上記の表があるブックをアクティブしたいことが目的なら、これでも 可能だと思います。 ichinose ---- ihinoseさん、毎回のご指導有難うございます。ご返事ちょっと遅れたので何かあったのかと 心配しておりましたが、回答いただき安心いたしました。 まず Sub ボタン1_Click() ThisWorkbook.Close False Workbooks("存在しないブック.xls").Activate Sheets("sheet1").Activate End Sub このコードをフォームのコマンドボタンに登録して実行しましたが。正常に作動するPCでは逆に 正常に作動しなくなりました。自宅のサンプル品でテストを行っているのでエラーの発生するPC では正常に作動するかどうかわかりません。 また次のコードもサンプルデータで実験を行いましたが、Book1が閉じられていた場合エクセルの 閉じるで実行した場合Book1は開きません。現行コードではBook1が閉じていても開いて 表示してくれます。 エクセルバージョンで作動するPCと作動しないPCがあると言うことは、マクロコード以外の原因があるのではないでしょうか? もしこれをカバーできるマクロデータがあるのであれば、私が使用しているエクセルデータ及び マクロデータすべてが必要と思われますので、内容が同等なエクセルデータ及びマクロデータを作成し ご相談いたします。現状使用品をそのままこれに乗せることは、はばかられますので、 ご容赦ください。サンプル作成に少々時間がかかると思いますので、返事をください。 ご返事いただいた時点でサンプル作成にかかります。 (キョッチャン) ---- >Book1が閉じられていた場合エクセルの閉じるで実行した場合Book1は開きません。 ↑このような仕様を想定していませんのでこうはならないでしょうねえ!! いくつかの点で動作内容に話がかみ合わないなあと感じる箇所があります。 これは、エラーが発生するという続きのご質問から感じていたことです。 これは、バージョンの違いなのか 投稿に載せていただいていない箇所があるかのどちらかです。 これは、私が考えている仕様とキョッチャンさんが既に一部のPCでは、作動している仕様との同期を取る必要が あります。そのためには、細かいフィードバックが必要です。 同期が取れるコードの提示は当然ですが、必要です。 私が気になっている箇所。 1 呼び出されたブック(Book1以外のブック)のコマンドバーフォームのボタンに登録されている VBAコードは、 ActiveWorkbook.Close Workbooks("book1").Activate Worksheets("sheet1").Activate 上記の3行以外にもあるVBAコードなのですか? だとしたら、すべてを見せてください。 2 Book1を呼び出して、ユーザーフォームが表示されてから該当するブックを呼び出して、修正等を加えて そのフォームのボタンをクリックするまでの操作を細かく記述してください。 本当に細かくです。 例えば、 Book1を開きます。 「ツール」----「マクロ」----「マクロ」とクリックし、「main」 というプロシジャーを選択し、 実行ボタンをクリックしてください。 すると、ユーザーフォーム(UserForm1)が表示されます。 テキストボックス(Textbox1)に1と入力し、コマンドボタン(Commandbutton1)をクリックしてください。 目的のブックが表示されます。 UserForm1の閉じるボタンをクリックしてUserForm1を閉じてください。 ・ ・ と一例ですが、このように細かく操作手順を記述し、呼び出されたブックの「フォーム」のボタンをクリックし、エラーが発生するまでの手順です。 これにより、エラー手順だけでなく、処理の流れが私の予想通りか否かのチェックもできます。 再度、投稿してください。 ichinose ---- 早速のご返答有難うございます。 質問に答えさせていただきます。 1の質問 VBAコードは、 ActiveWorkbook.Close Workbooks("book1").Activate Worksheets("sheet1").Activate だけです。 2の質問 通常はB列の図番号をクリックして目次ブックを開きます。 開いた目次ブックのシートは目次ブックと命名したシート1枚です。このシートにフォームで作成した コマンドボタンに上記マクロを登録してBOOK1に戻れるようにしています。さらに目次ブックの シートに開きたいページの名称をセルに設定しこれに対し図形(楕円)を作成しこれに ハイパーリンクを設定しそのブックにリンクします。リンクしたページにも同様にフォームで作成した コマンドボタンに上記マクロを登録しています。登録コードはブック名、シート名は違いますが同様 のコードです。ユーザーフォームを使用しなくても、ボタンを実行するとエラーが生じます。 まさかすぐにご返事いただけると思ってもいませんでした。有難うございます。 たまたま「エクセルの学校」を開いたら、答えが掲載されていました。晩酌でほろ酔い 気分でご返事申しあげていますので、文章に乱れがあるかと思いますがご容赦くだ さい。すぐにご返事申し上げたくて、筆を執りました。(キョッチャン) ---- 1はわかりました。 でも、不可解なのは、 ActiveWorkbook.Close Workbooks("book1").Activate Worksheets("sheet1").Activate これだけのコードでBOOK1が閉じていてもBOOK1が表示される ということです。 私には、納得できません。何かの解釈が違っている証拠です。 つまり、フィードバックがまだぜんぜん足りていない証拠です。 2に関して、これだけでは殆どイメージできません。 今度は、何もないところから、私が読んで同じものが作成できる投稿をしてください。 コードも含めてです。 コードとブックの作成手順と一般的な操作手順をもっと詳しく 箇条書きに記述してください。 仕様書を投稿するのと同じぐらいに記述してください 何かの解釈が必ず違っているはずですから・・・・。 >答えが掲載されていました それは、たまたまです。仕事ではないですから、投稿を見たってすぐに返信しないときだってありますよ。 ichinose ---- 一つだけ原因がわからないので、方法としては疑問符が付くかもしれませんが・・・。 Sub Sample() On Error Resume Next ActiveWorkbook.Close Err.Clear Workbooks("book1").Activate If Err.Number <> 0 Then Workbooks.Open "book1のフルパス" '←book1の実際のパス(d:¥xxx¥yyy¥book1.xls"等)を指定してください DoEvents Workbooks("book1").Activate End If Worksheets("sheet1").Activate End Sub としてみると、どうなりますか? ichinose ---- ichinoseさん毎度毎度ご教授有難うございます。感謝いたします。 今回はいろいろご教授いただいていますが、、私自身も納得の行かないところがあ りますので、ご教授に反して、単純なテストを次のような手順で行って見ました。気分 を壊さないで見てください。 1.エクセルブックを開きBook1と名づけてデスクトップに保存する。 2.再度エクセルブックを開きBook2と名づけてデスクトップに保存する。 3.Book1Sheet1のセル(A1)にBook2にリンクするハイパーリンクを設定する。 4.Book1のマクロ画面で標準モジュールを設定しここに Sub 戻る () ActiveWorkbook.Close Workbooks("book1").Activate Worksheets("sheet1").Activate End Sub を記録する。 5.Book2Sheet1に表示 ツールバー フォームでコマンドボタンを作成しこのコマンドボタンにマクロ"戻る" を登録する。 これでBook1を開きハイパーリンクを利用してBook2を開きコマンドボタンをクリックしました。今ま で正常に作動したPCではBook2は閉じBook1が開きました。エラーの出たPCではやはりエラーが 発生しMsgBoxには"インデックスが実効範囲にありません"と表示されます。また正常に作動 するPCでBook1をエクセルの「閉じる」で閉じてBook2を開きコマンドボタンをクリックするとBook2は 閉じセキュルティ警告が表示されBook1は開きます。このテストでは他のマクロは何も設定しており ません。ということはエラーの出たPCではこのマクロではBook1を認識してないことになるの ではないのではないでしょうか?このマクロの.Open、.Activate以外に表示マクロがあるので はないのでしょうか。以前オートフィルタで検索したデータを他のシートにコピーしようとしてコピー 範囲を設定しコピーを実行した時、XP エクセル2003では何もしなくてコピーできましたが、 VIST エクセル2007では選択した範囲のすべてがコピーされたので「エクセルの学校」に相談した ところマクロに"表示範囲をコピー"という一文を加えることにより正常に作動するようにな りました。これと同様のことが、これにも発生しているのではないのでしょうか。 今回いただいたマクロはBook1に貼り付けたらいいのでしょうか。 長々と生意気なことを書いてしまいました。気を悪くしないでヒントになるようでした らしてください。私には流れは理解できても答えは想像もつきません。何せマクロについ ては初心者ですもので。(プレビューを見ると最初の部分の文章が乱れています。見にく いと思いますがご容赦ください。何回か修正を試みましたができませんでした。この 相談においてきれいな表示方法もよければ教えてください。)(キョッチャン) ---- やっと、構造らしきものがみえました。 Sub 戻る() ActiveWorkbook.Close with thisworkbook .Activate .worksheets("sheet1").Activate end with End Sub としてみては? 正常に作動するコードとエラーになるコードがあるなら、ここから始まりかな? まず、先に上記のコードをBook2.XlsのSheet1に配置したボタンに登録してためしてください >気分を壊さないで見てください 壊すはずがありません。こういう投稿をしてほしかったのですから・・・。 なるべく簡単な事例で問題を再現させる、いや、再現できる記述をする。 これを文書だけで実現することがこういう掲示板の大きな意義の一つだと 思っていますから・・・。これができていない質問は、沢山ありますから・・。 それも出来ないのではなく、やらないだけの質問が多いんですよ!! ichinose ---- icinoseさん有難うございました。ご指導どうりエラーの出たPCでコードをBook2Sheet1 のボタンに登録して、実行したところ、思いどうりの作動をいたしました。 これで解決と喜んでマクロを修正を支持し実行していたところ、いままで正常に作動 していたPCを使用していた人から、こんな言葉が聴かれました。 「Book2のボタンをクリックしてもBook1に戻りません。」 私は唖然としました。そこで私のPCで確認したところ、Book2のボタンをクリックすると 「指定のマクロが見つかりません。」 と表示が出ました。そこで再度このボタンに登録しようとマクロ登録画面を表示すると マクロ登録ボックスに「戻る」の先にBook1の住所が追加して書かれていました。 そこでBook1!戻るを再登録してボタンをクリックすると正常に作動するようになりまし た。 確認のため修正をしているPCを中断をして同様の作業を行ったところ正常に作動してい たものが先に書いたことと同様なことが発生ました。 ichinoseさんにより村八分だったPCを仲間に加えられたと喜んでいたのに今度は抵抗を 加えられた感じです。 「私が正常と思っていたのが逆に異常でPCの世界ではこれが正常なのかな。」 と私の心の底どこかで思うようになってきました。 何か解決方法はあるのでしょうか。 また文章ばかりになりました。 (具体的な事項が必要ならば明日会社で確認し連絡いたします。このことはテストで確 認できることではないようですから。) (キョッチャン) ごめんなさい、どうしてもどうしても読みにくかったから全面的に文章直しました。 ほんとにごめんなさい。 (通りすがり) ---- >マクロ登録ボックスに「戻る」の先にBook1の住所が追加して書かれていました。 正確に何が表示されたのですか? 例えば、 'C:¥Documents and Settings¥ichinose¥デスクトップ¥Book1.xls'!戻る このように表示されているのですか? このように表示される場合は、Book1.xlsが閉じた状態で、 Book2.Xlsのボタンのマクロ登録画面を表示したのではないですか? この場合、 C:¥Documents and Settings¥ichinose¥デスクトップ¥Book1.xls このパスが間違っていなければ、作動するはずです。 このパスにBook1.Xlsが存在して、そのブックに「戻る」というマクロがありますか? それと再度、Book1!戻る登録した場合、その後はどうなんですか? アドインを使って、コマンドバーにボタンを作成し、そのボタンにBOOK1を呼び出す機能を 持たせたらどうですか? そうすれば、それぞれリンク先のブックボタンを作成しなくても よさそうですけどねえ!! ichinose ---- マクロ登録ボックスには C:¥Documents and Settings¥ichinose¥ デスクトップにおいていますが、おおもとの保存先の住所のみでデスクトップは入っていません。 それと、Book2のコマンドボタンをクリックすると表示するエラー文は「2重に開くことはできません。」という文です。 それと新たにわかったことですが、エラーの発生するPCは大元のデータBOOK1(台帳的なデータ)およびそれのリンク先のブックををまとめたフォルダを保存しているPCだけで、エラーの発生していたもう1台のPCはエラー発生はなく改善されていました。これはichinoseさんのご指導のたまものと思います。これでエラー発生の原因は絞りこめるのではないかと思いますがいかがでしょうか。 もう一点アドインを使って、コマンドバー云々という文がありますが、具体的な作成方法を教えてください。ツールの中にアドインがあったので開いてみましたが意味がわかりません。(キョッチャン) ---- キョッチャンさん> スレも続きそうなので、今後の投稿の際は文頭に半角スペースを入れて 適当なところで改行を入れてもらえますか? ←ここに「 」です。 そうすると改行などが反映され、読みやすい書き込みになります。(とおりすがりん) ---- >2重に開くことはできません。 ふ〜ん、ということは、BOOK1が開いているのにパスも含めた内容が登録されているのですね!! まだ、再現手順が不明ですが、起こりそうな現象ですねえ。再現が出来ないのでここからの 修正案が浮かびません。 で、代替案として、前回ちょこっと申し上げたアドインを使う方法。 コマンドバーを使う方法なので2007で正常に作動するか心配ですが・・・。 キョッチャンさんの投稿されている処理というのは、Book1というハイパーリンクが設定されている ブックを簡単にアクティブする事が主目的ですよね? この処理をコマンドバーにボタンを設けてこれをクリックすることで実現してしまおう という仕様です。 今までの投稿と重なる記述もありますが、最初から記述します。 では、新規ブックにて(Sheet1というシートがある)、試して見てください。 1 準備 ユーザーフォームを一つ作成してください。 ユーザーフォーム名--------UserForm1 テキストボックス----------TextBox1 コマンドボタン ----------CommandButton1 UserForm1には、上記二つのコントロールを貼り付けてください。 2 Sheet1にデータ設定 標準モジュール(Module1)に '================================================================= Option Explicit Sub データ設定() Application.DisplayAlerts = False With Workbooks.Add .Worksheets(1).Range("a1:b10").Value = "aaa" .SaveAs ThisWorkbook.Path & "¥aaa.xls" .Worksheets(1).Range("a1:b10").Value = "bbb" .SaveAs ThisWorkbook.Path & "¥bbb.xls" .Worksheets(1).Range("a1:b10").Value = "ccc" .SaveAs ThisWorkbook.Path & "¥ccc.xls" .Close False End With Application.DisplayAlerts = True With ThisWorkbook.Worksheets("sheet1").Range("a1:b4") .Rows("1:4").Value = [{"項目1", "図番号";"a",1;"a",2;"a",3}] With .Range("b2") .Hyperlinks.Add Anchor:=.Cells, Address:="aaa.xls" End With With .Range("b3") .Hyperlinks.Add Anchor:=.Cells, Address:="bbb.xls" End With With .Range("b4") .Hyperlinks.Add Anchor:=.Cells, Address:="ccc.xls" End With End With End Sub 別の標準モジュール(Module2)に、 '================================================================== Option Explicit Sub main() UserForm1.Show End Sub 先に作成したUserForm1のモジュールには、 '================================================================== 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 と以前投稿したコードに似ていますが、ちょこっと違いますから、気をつけてください。 Userform1とコードの設定が完了したら、一度ブックを適当なフォルダに保存してください。 どこでも良いです。 但し、保存するブック名は、必ず、Book1.xlsにしてください。 保存した後に、 上記の「データ設定」を実行してください。 Sheet1というシートに A B 1 項目1 図番号 2 a 1 3 a 2 4 a 3 こんなデータが作成されるはずです。尚、Excelでデータベースを作成する場合は、項目名を設ける ようにしてください。その方がExcelの機能を利用しやすいですから・・・・。 B列の数字には、コードで作成したブックがハイパーリンクとして設定されています。 サンプルデータとして、リンクされたブック(aaa.xls,bbb.xls,ccc.xls)は、book1.xlsと同じ フォルダ上に作成しましたが、これはコードの都合上で違っていてもかまいません。 これで前回投稿と同じようなサンプルブックが作成されると思います。 違うのは、ハイパーリンク先として、Excelブックが指定されている事ぐらいです。 ハイパーリンクが設定された状態でbook1.xlsを上書き保存をしてください。 一応 Book1.xlsで正常にハイパーリンクされたり、Userform1が正常に作動するか確認してください。 一度、Excel終了してください。それて、再度、Excelを起動してみてください。 新規ブックとして、Book1が既定ブックとして作成されていることを 確認してください。 3 アドインブックの作成 新規ブックのThisworkbookのモジュールに '================================================================================= Option Explicit Const cmdnm = "目次呼び出し" Const bknm = "book1.xls" '================================================================================= Private Sub Workbook_AddinUninstall() On Error Resume Next With Application.CommandBars .Item(cmdnm).Delete End With On Error GoTo 0 End Sub '================================================================================= Sub Workbook_Open() On Error Resume Next With Application.CommandBars .Item(cmdnm).Delete With .Add(cmdnm, msoBarTop, , True) .Visible = True With .Controls.Add(msoControlButton) .Style = msoButtonCaption .Caption = cmdnm .OnAction = ThisWorkbook.Name & "!thisworkbook.open_mokuji" End With End With End With On Error GoTo 0 End Sub '================================================================================= Sub open_mokuji() Dim bk As Workbook On Error Resume Next If Not ActiveWorkbook Is Workbooks(bknm) Then ActiveWorkbook.Close End If Set bk = Workbooks(bknm) If Err.Number <> 0 Then Set bk = Workbooks.Open(ThisWorkbook.Path & "¥" & bknm) End If bk.Activate bk.Worksheets("sheet1").Activate End Sub 上記のコードをThisworkbookのモジュールに記述してください。 アドインとして保存しますから、以下の手順に従ってください。 VBEからExcelに戻ってください。 「ファイル」-----「名前を付けて保存」とクリックして、名前を付けて保存するダイアログを表示させて ください。 「ファイルの種類」として、「Microsoft Excel アドイン (*.xla)」を選択してください。 保存フォルダが変わりますが、book1.xlsがあるフォルダまで移動して保存します。 保存する名前は、Book1Read.xla として保存してください。 一度、Excel本体を閉じてから、再度Excelを立ち上げてください。 再び、新規ブックとして、Book1が既定ブックとして作成されていることを 確認してください。 「ツール」----「アドイン」と起動して、アドインダイアログを表示させてください。 「参照」ボタンをクリックしてください。ファイルの参照画面から、Book1Read.xla がある フォルダまで移動して、Book1Read.xla を指定してOKボタンをクリックしてください。 アドイン一覧に作成した「Book1Read」があるはずです。 チェックされていることを確認してOKをクリックしてください。 この時点から、目次呼び出し というボタンを持ったコマンドバーが作成されます。 このアドインにチェックが入っている限り、次回からは、起動すれば自動的にExcelには、 目次呼び出しというボタンが表示されるはずです。 目次呼び出し というボタンをクリックしてください。 Book1.Xlsが表示されます。 適当にリンク呼び出しを行って再度、目次呼び出し というボタンをクリックすることで book1.xlsが表示されることを確認してください。 これで代替出来ませんか? ichinose ---- ichinoseさん有難うございます。アドインというこんな機能があるとはまったく知りませんでした。 まだまだ勉強不足です。 私も1つ発見をしました。これもichinoseさんのご指導のおかげですが、ご教授いただいたマクロコードを 設定することによりエラーを発生するPCが1台正常に戻りました。今日たまたま、まだエラーを発生するPCで以前 紹介したことがあると思いますが、Book1から目次ページのBook2にリンクしさらにリンクするBook3を作成して います。これを実行したところ正常に作動するではありませんか。なぜだろうと考えたところ、Book2 とBook3はハイパーリンクと名づけたフォルダ同じフィールド内にありBook1は共有しているフォルダにハイパーリンクフォルダ と同じフィールドに同梱しています。(Book1はハイパーリンクフォルダの中には入っていない。)同じフィールドに Bookがあれば正常に作動するのではないかと考え、Book1をハイパーリンクフォルダに入れて作動させたところ 正常に作動するようになりました。しかし、ここでまたまた問題発生です、ご想像のとうりハイパーリンク の設定のやり直しです。Book1は台帳としていますので、それにデータが6000近く入っています。これに ハイパーリンクを設定しだしたのはここ1年ぐらい前からですがそれでも500個ぐらいの量になっています。 これをやりなおすとなると、Book1の使用を一時ストップしなければなりません。これをカバーするマクロは ないですか。あれば参考のため教えてください。またアドインを設定したら500個のリンクしているBook すべてに反映できますか。 それでも疑問として残るのは、マクロが正常に作動するPCとエラーの出るPCがあるということです。これを カバーするマクロがあることは解りましたが、エラーのでるPCにはこのマクロの実行を阻止する何かを持って いるか、またはPCが古いためマクロを実行する何かが足りないのだろうと割り切ることにしました。 また私の悪い癖、長い文章で書いてしまいました。どうぞご容赦ください。(キョッチャン) ---- やっぱり気になるので書いてみます。 エラーにならないPCは、ファイルの拡張子を表示してなくて フォルダを開くと、名前が「Book1」と表示されている。 エラーになるPCは、拡張子を表示している フォルダを開くと、名前が「Book1.xls」と表示されている。 なんて設定の違いは無いですか? (HANA) ---- エラーの原因がわかりません。順序だてて、再現手順書を作成してください。 >まだエラーを発生するPCで アドインの事例でということですか?それとも今までの手法での話ですか? このエラーが再現する手順を記述してください。 どんなエラーがコードのどの個所で発生しているかも示してください。 そこから、このようにしたら正常に作動した という手順も示してください。 他にも疑問点がありますが、まずここまで 説明してください。 ichinose ---- >フォルダを開くと、名前が「Book1.xls」と表示されている。 これかなあ・・・。 どのブックも ブック名に .xlsを付けて再度元々方法を試してみては?。 フォルダオプションの設定の違いかなあ・・・。 本当は、全部 .XLSが付いていると思っていました。 ichinose ---- icinoseさんごめんなさい。以前取り消されましたがHANAさんの答えに同様の答えがあったのを見て しまいました。ブック名には.xlsがついていますが、マクロ内の指示には、.xlsをつけていませんでした。 そこで、マクロの指示に.xlsをつけて実行したところ、ichinoseさんのマクロと同様に1台のPCは正常に 作動するようになりました。しかし、1台のPCはやはり正常に作動いたしません。 そこで1つ前の質問に戻ります。まず、エラーの出るPCの環境について説明いたします。共有フォルダに Book1とBook1からリンクするブックを収納したフォルダを収納しています。ここからBook1を「送る」でディスク トップにBook1のアイコンを作成しています。次にエラー発生の手順を記します。 1.ディスクトップのBook1のアイコンをクリックしてBook1を開く。 2.図番号列に設定した数字をクリックする。 3.「2重に開くことはできません。」という表示がMsgBoxに表示される。(正確な文章は現場に行か ないと解りません。) 正常に作動した手順は次のとうりです。 1.Book1をBook1からリンクするBookを収納したフォルダに移動。 2.Book1を開く。 3.図番号列に設定した数字をクリックする。 (キョッチャン) ---- HANAさんの質問に対する答えは現場に行かないとわかりません。明日(2/26)は休みを取っています ので月曜日の返事となります。申し訳ありません。 ---- > 1.ディスクトップのBook1のアイコンをクリックしてBook1を開く。 >2.図番号列に設定した数字をクリックする。 >3.「2重に開くことはできません。」という表示がMsgBoxに表示される。(正確な文章は現場に行か ないと解りません。) ん、ハイパーリンクでエラー? >それと、Book2のコマンドボタンをクリックすると表示するエラー文は「2重に開くことはできません。」という文です。 ボタンクリックでのエラーではないのですか? ハイパーリンクは、リンク先のパスは、この設定を行った時点での相対パスで設定されているはずです。 よって、設定後にハイパーリンク元のブック(BOOK1)の保存先を移動(Windowsのファイル操作で移動)すると正常に作動しない可能性もでてきます。 例えば、Book1とbook2がデスクトップ上位にあるとき、Book1にBook2へのハイパーリンク設定したとき、 設定後、Book1を移動したりすると(Windowsのファイル操作で移動)、正常作動しない可能性はあります。 保存先フォルダ変更は。Excelを介して行っていますか? Book1の読み込み 保存先変更 元のブックの削除 という順序です。 BOOK2のボタンだって デスクトップ上にあるときに、マクロを登録し、 その後BOOK1を移動すれば、正常には作動しませんよ!! まず、問題をどれかに絞りましょう。 ichinose ---- icinoseさんこのコーナーが少々混乱しているようです。まず最初のお答えについてです が、説明にきずいて再度この質問コーナーを開いたらまだ回答がなかったので修正を書き 込みました。それで次の日の朝、このコーナーを開いたら修正文はなく、上記ichinoseさ んの回答だけがありました。このコーナーで、同一人の連続2回の書き込みは自動削除さ れますか?それともかなり質問のやり取りが増えていますので混乱をきたしているの でしょうか。そろそろ新しい質問箱に移動しましょうか。 今回は内容がまったく違ったものになって申し訳ありません。 それと質問の内容について私の質問内容のとらえ方についてについて基本的なところ で食い違いがあるようです。私は共有しているデータをすべてのPCで同様に扱えるよう にすることを目的として質問させていただいています。私の質問の仕方が悪いのだと 思いますが、現状は特定の1台のPCでエラーが発生して今までの説明のおかげで他のPCは すべて正常に作動します。私の行った対策についていずれもエラーが発生するのはこの 特定される1台のPCですこれをカバーできる方法があればと思って質問させていただい ております。何かの対策を打ち正常に作動しているPCに異常が発生したときはその つど報告させ ていただきます。今までは改良こそあれ、正常PCが異常発生したこと はありません。また生意気なことを書いてしまいました。これにもめげず今後とも 今までどうりの親切なご回答をお待ちしております。(キョッチャン) ---- えっと。。。 >HANAさんの質問に対する答えは現場に行かないとわかりません。 >月曜日の返事となります。 という事ですが >ブック名には.xlsがついていますが、マクロ内の指示には、.xlsをつけていませんでした。 >そこで、マクロの指示に.xlsをつけて実行したところ、ichinoseさんのマクロと同様に1台のPCは正常に >作動するようになりました。 のご説明がありますので、充分です。 それから、コメントを書くときに 1.半角カタカナは使用しない 2.適当な位置(無理のない文節)で改行をする 3.適度に空行を挟む を心がけていただけると、もう少し読みやすくなって 良いのではないかと思います。 因みに >同一人の連続2回の書き込みは自動削除されますか? そんなことは有りませんので プレビューで確認後、閉じてしまったのではないでしょうか? それで、「ボタンでエラー」が正解なんですか? それとも、修正後が「ハイパーリンクでエラー」なんですか? >そろそろ新しい質問箱に移動しましょうか。 この問題に対する当初の質問は 「インデックスが有効範囲に有りません」のエラー だったと思います。 それは、.xlsをつけた事で解決したのではないかと思いますし ichinoseさんの「with thisworkbook」を使ったものではおきないと思います。 現在は「2重に開く事が出来ません」のエラーですし スレも長くなっていますので整理しても良いと思います。 (その際は、このスレにリンクと このスレへのリンクを 貼っておいて頂くのがよいと思います。) メインでコメントして居られる、ichinoseさんのご意見を お伺いしてからが良いと思いますが。。。 (HANA) ---- 有難うございます。 Book2(目次ページ)に設定している、Book1へ戻るコマンドボタンをクリックすると「2重に開く事が出来ません」と表示されるのが正解です。 それとハイパーリンクを設定している、ブックを違うフォルダ等に移動すると、リンクするときエラーが出るのは 理解しているつもりです。Book1にハイパーリンクを500件近く設定しているのでこれを修正するのは 私の知識では膨大な作業量になるので、Book1を移動しなくても異常の出るPCを正常に作動させる マクロを設定できないか?(もちろん正常に作動しているPCも正常に作動するマクロ) それか、これは虫のよい話かもしれませんが、500件設定しているハイパーリンクを簡単に修正する方法が 無いかと言う相談です。 (キョッチャン) ---- HANAさんのおっしゃるように別スレッドにした方がよさそうですね!! >Book1は共有しているフォルダにハイパーリンクフォルダ >と同じフィールドに同梱しています。(Book1はハイパーリンクフォルダの中には入っていない。)同じフィールドに >Bookがあれば正常に作動するのではないかと考え、Book1をハイパーリンクフォルダに入れて作動させたところ >正常に作動するようになりました。しかし、ここでまたまた問題発生です、ご想像のとうりハイパーリンク >の設定のやり直しです。 現在の問題が以前、キョッチャンさんが投稿された↑だとすると・・・・、 まず、フィールドという表現があいまいなので正確に記述してください。 例 d:¥aaa¥bbb というフォルダに book1.xlsが共有ブックとして保存されています。 このbook1.xlsに登録されているハイパーリンク先のブックは、すべて d:¥xxx¥yyy¥zzz というフォルダ内に保存してあります。 この状態だとエラーになりますが、 book1.xlsを 「・・・・・・」というフォルダに移すと 正常に作動します。 この「・・・・」も正確に記述してください。 現在エラーになっているPCでBook1.Xlsを上記のように移動すると、 当該PCでは、作動しても 逆に他のPCでは作動しない ということはないのですか? この検証はしてみてください。 >500件設定しているハイパーリンクを簡単に修正する方法が これは、正常に作動している時のBook1.Xlsとハイパーリンク先のブックの位置関係を正確に記述して すれば出来そうですけどねえ!! これもいくつかデータで手動で修正し、その結果、すべてのPCで作動することを 確認してからの話です。 それから、複数のPCでの正常作動が目的だし、内容も結構複雑です。 くどくなっても、同じ事を何回も確認しながら(フィードバック)の記述をお願いします。 ichinose ---- ↑の投稿の修正がてら、新規にされる場合のお願いとして。。。 PCは何台有るのですか? 共有フォルダが有るPCと、問題の出るPCと、問題の出ないPC の3台(3種類)? もしかして、共有フォルダは 問題の出るPCに有ったりして? 或いは、各PCがそれぞれに共有フォルダと言うフォルダを持っているのでしょうか? ichinoseさんが書いて居られる事と重複するかもしれませんが それぞれのファイルがある位置関係も 分かりやすくしておいていただけると良いと思います。 (HANA) ---- ichinoseさん会社でご質問の件確認いたしました。 アドレスの欄にはいずれも ハイパーリンク/A1.xlsと表示されています。 それと1つ実験を行いました。ファイル「A1」を C:新しいフォルダ¥台帳¥A1.xls としました。Book1のあるところと同じ場所です。 Sub 戻る () ActiveWorkbook.Close Workbooks("book1").Activate Worksheets("sheet1").Activate End Sub をファイルA1に設定した上記コードを登録したコマンドボタンで実行したところ、 7台すべてで正常に作動いたしました。 (キョッチャン) ---- ichinosesさん 今日表題の件で教えていただいた、マクロでB列に設定しているハイパーリンクは 最近のものは連続で設定していますが、若い数字のものは歯抜けで設定していますので、とびセルに 設定したハイパーリンクをユーザーフォームで実行したところ、ユーザ-フォームで指定したブック が開けませんでした。現在発生している問題点の解決方法と、あわせてこのマクロの修正方法も 教えてください。 (キョッチャン) ---- [[20100227101555]] これが続きです。 ichinose ---- ボタンを押したときの正確なエラーメッセージが続きのスレに投稿されたので こちらへも貼り付けておきます。 メッセージは 「Book1.xls は既にひらいています。 2重に開くと、これまでの変更内容は破棄されます。 Book1.xls を開きますか?」 ではなく 「Book1.xlsと同じ名前のファイルがすでに開いています。 保存先が別のフォルダでも同じ名前のファイルを同時に開くことはできません。 2つ目のファイルを開く場合は一方のファイルを閉じるか またはいずれかのファイルの名前を変更してください。」 でした。 (HANA) ...
http://www.excel.studio-kazu.jp/wiki/kazuwiki/201002/20100210194102.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97012 documents and 608123 words.

訪問者:カウンタValid HTML 4.01 Transitional