- ベストアンサー
EXCELでハイパーリンク自動生成
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
削除マクロを実行する時点のA列はどうなっていますか? こちらでは、A列のデータ範囲に空白セルが無いとエラーを起こすようですが、 場所は Selection.SpecialCells(xlCellTypeBlanks).Select でした。 とりあえず、 Columns("B:B").Select 以下の数行の間に、次の※印の2行を挿入 してみてください。 Columns("B:B").Select On Error GoTo Pfm '※ Selection.SpecialCells(xlCellTypeBlanks).Select Selection.EntireRow.Delete Pfm: '※ あとは―― 見当つきませんが、Excelのバージョンの違いによるのかも知れません。 これでもエラーが出たり処理結果が違う(削除されないシートがあったり、余分に 削除されたり)場合は、結果を具体的にお知らせください。
その他の回答 (3)
- misatoanna
- ベストアンサー率58% (528/896)
> 実際に入力する位置は管理表のAの列にしています。 エラーが発生したのはどの行ですか? シート名以外に次の3か所を書き換えましたか? 削除コマンドの上から6行目を書き換えます。 Columns("B:B").Select → Columns("A:A").Select 同じく真中あたりの2行を書き換えます。 For j = 2 To Range("B65536").End(xlUp).Row If Sheets(i).Name = Sheets("MGR").Cells(j, 2).Value Then ↓ For j = 2 To Range("A65536").End(xlUp).Row If Sheets(i).Name = Sheets("MGR").Cells(j, 1).Value Then
補足
すみません、試してみましたが、同じエラーが出て、 デバックの指示が出て、Selection.EntireRow.Delete が黄色表示になります。
- misatoanna
- ベストアンサー率58% (528/896)
正直なところ、マクロにつきましては私も初心者ですので、内容がごちゃごちゃしている上、バグが あるかも知れませんが―― ^^; 前回のと差し替えてください。 <変更内容> 1.ハイパーリンクの設定 2.同一データがある場合は警告 3.その他 ' Private Sub Worksheet_Change(ByVal Target As Range) Dim i On Error Resume Next If Target.Column <> 2 Then Exit Sub If Target.Row = 1 Then Exit Sub If Target.Value = "" Then Exit Sub For i = 1 To Sheets.Count If Sheets(i).Name = Target.Value Then MsgBox "同じ名前のデータがあります" Target.ClearContents Target.Select Exit Sub End If Next Application.ScreenUpdating = False Sheets("Form").Copy After:=Sheets(WorksheetFunction. _ CountA(Range(Cells(1, 2), Cells(Target.Row, 2)))) ActiveSheet.Name = Target.Value ActiveSheet.Range("B3") = Target.Value Sheets(Target.Value).Range("C3").Select ActiveSheet.Visible = True ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", _ SubAddress:="MGR!B1", TextToDisplay:="管理表へ" Sheets("MGR").Activate ActiveSheet.Hyperlinks.Add Anchor:=Target, Address:="", _ SubAddress:=Target.Value & "!B3", TextToDisplay:=Target.Value Application.ScreenUpdating = True End Sub -------------------------------- シートを削除するルーティンは、別プログラムでバッチ処理することにしました。 Visual Basic Editor の [挿入]-[標準モジュール] に、以下をコピーします。 ' Sub DelSheet() Dim i, j, Chk Sheets("MGR").Select Application.ScreenUpdating = False Application.DisplayAlerts = False Columns("B:B").Select Selection.SpecialCells(xlCellTypeBlanks).Select Selection.EntireRow.Delete On Error Resume Next For i = Sheets.Count To 3 Step -1 For j = 2 To Range("B65536").End(xlUp).Row If Sheets(i).Name = Sheets("MGR").Cells(j, 2).Value Then Chk = 1 Exit For End If Next If Chk = 0 Then Sheets(i).Delete Chk = 0 Next Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub 任意の時点で、[ツール]-[マクロ]-[マクロ] から DelSheet を選択して実行します。
補足
どうも、ありがとうございます。ハイパーリンクはうまく行きました。シートの削除の方は、やってみましたがエラー1004 重複する選択範囲に対してそのコマンドは利用できません。と出て、うまくいきませんでした。実際、「MGR」を管理表、「Form」を対応表に書き換えているのと、実際に入力する位置は管理表のAの列にしています。
- misatoanna
- ベストアンサー率58% (528/896)
マクロ処理になりますね。 以下はだいぶ手を抜いた例ですが、このような内容でしょうか。 二枚のシートがあるとします。 1枚目の名前は MGR で、管理表です。 2枚目の名前は Form で、対応表の様式です。 1枚目のB列セルに文字入力すると、それと同じ名前の管理表が作成され、その B3にも1枚目で入力された文字が表示されます。 1.次のコードをコピーしてから、MGRシートタブの右クリックメニューの「コードの 表示」を選択します。 Private Sub Worksheet_Change(ByVal Target As Range) Application.ScreenUpdating = False If Target.Column <> 2 Then Exit Sub If Target.Value = "" Then Exit Sub Sheets("Form").Copy After:=Sheets(Sheets.Count) ActiveSheet.Name = Target.Value ActiveSheet.Range("B3") = Target.Value Sheets("MGR").Activate Application.ScreenUpdating = True End Sub 2.開いた画面にコピーしたものを貼り付けて閉じます。 3.以上の操作が終了したら、MGRシートのB1に何かを入力してみてください。 シートの削除までは対応させていません。
お礼
ありがとうございます。マクロ処理かな?とは思ったんですが、マクロが全然分からないので質問しました。もしよければ、シートの削除と相互のハイパーリンクが自動で生成できればとも思うのですが、できますでしょうか?
関連するQ&A
- excelのハイパーリンクについて教えてください
ファイル名:シート1のA列に曲名を入力して、そのセルにハイパーリンクを設定して動画が動くように指定しています。 新しくファイル名:シート2を作り、その中のセルに =[シート1.xls]Sheet1!$A$1 と入力しているのですが、曲名は取り込めるのですが、ハイパーリンクの情報が取り込めません。 シート2にシート1で指定した曲名とハイパーリンク情報を取り込む方法があればお教え下さい。 エクセルのバージョンは2002を使用しています。 全くの素人ですが宜しくお願い致します。
- ベストアンサー
- その他MS Office製品
- エクセル ハイパーリンク
エクセル ハイパーリンクについての質問です。 エクセルで元データ用シートと検索用シートを作成したのですが検索用シートにハイパーリンクをかけたいのですが検索するたびに検索結果によってハイパーリンクでとばしたい場所を変えたいのですがそのような事は出来るのでしょうか? 検索用シートの "B1" のセルに「あ」と入力すると元データ用シートの 「あ」ではじまる単語を 検索用シートの "C1" から縦に順番にVLOOUPでひいてきているのですが検索するたびに単語がことなる為、毎回ハイパーリンクでとばす場所を変えたいのですが? 今は、1つのセルには同じ所へのハイパーリンクしかかけられのですが。 それか、オートフィルタであるセルに入力すると自動でオートフィルタがかかるなどでもよろしいのですがいかがでしょうか?
- ベストアンサー
- その他(Windows)
- excelのハイパーリンクで質問です
excelのbookでシートが増えすぎて管理しづらい為、一覧表シートを作りハイパーリンクボタンで各シートへ飛ぶようにしようと思うのですが、その際セル参照も行いたいのですが、B列の「最下入力行」とかの指定は可能でしょうか?よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Excelでハイパーリンクが自動的に設定されないようにする方法は?
エクセルでセルにメールアドレスやURLを入力すると、当該セルに自動的にハイパーリンクが挿入(設定)されますが、設定不要なシートなのでそのつどハイパーリンクを削除しています。 面倒なのであらかじめシート全体に挿入されないよう設定する方法が分かりません。どなたかご存知の方教えてください。
- ベストアンサー
- オフィス系ソフト
- Excelのシートから 1000個ほどのフォルダに ハイパーリンクをつけたい
Excelのシートから 1000個ほどのフォルダに ハイパーリンクをつけたいのですが、効率の良い方法はないでしょうか 現在の手順は、以下の通りです 1.)対象フォルダ名をコピー 2.)セルを右クリック⇒ハイパーリンクの編集 3.)最近使ったファイルのアドレス履歴から>c:\データ\一覧.xls を選択 [一覧.xls]部分の替りにコピーしたフォルダ名を貼付け⇒[OK] 実際にクリックして、リンクの確認するまで約1分かかっています (1)セルの表示を変えずに、ハイパーリンクだけを一括で編集⇒シートに結合(貼付け)する方法はありますか (2)マクロを含め、何か効率の良い解決策があれば教えて下さい (3)似たシートを作成した経験のある方は、時間短縮のできそうなアドバイスをお願いします
- ベストアンサー
- オフィス系ソフト
- Excel97のハイパーリンクについて
Excel97を使っています。 一覧表があり、ハイパーリンクを使って 同ブック・別シートの詳細へ飛ばしています。 詳細の内容、種類がたくさんある為、 シート分けをせず、1枚のシート内で 離れた場所に詳細内容を作成しておいて、 リンク先を指定する際に、 画面に表示されるセルの場所まで指定したいのですが、 可能でしょうか。 「参照」のセル番地で指定できるのかと思いましたが、 指定したセルがうまく左上にきてくれない為、 画面上にキレイに表示する事が出来ません。 何かいい方法はあるでしょうか? 宜しくお願い致します。 やはり、シーとをそれぞれ作成するしかないでしょうか。
- ベストアンサー
- オフィス系ソフト
- ハイパーリンクのコピーについて。
EXCEL2003使用 2つのEXCELを開いて、2つの関連した別々の表を作成しています。 (仮に各々「A表」「B表」とします。) 「A表」に住所等の一覧をつくり、一覧の各セルにハイパーリンクをして有ります。 そしてその「A表」のハイパーリンクが有るセルを、もう一方の「B表」にコピーをすると、「A表」のセルの周辺のハイパーリンクまでコピーされ「B表」にペーストされてしまいます。 その為、「B表」に有ったの元々のハイパーリンクが、「A表」のハイパーリンクに変更されたり、空白のセルにまで、ハイパーリンクが出来てしまっています。 この無駄なハイパーリンクのコピーを消す方法は有りませんか? お願いします。
- ベストアンサー
- オフィス系ソフト
- MS Excelのハイパーリンクに関して
はじめまして、 Ms Excel2003を使用して、一覧表を作成しているのですが、自動的に、mailto:aaaaa@goo.ne.jpと言うリンクが挿入されてしまって、困っています。 通常ハイパーリンクは、入力した、メールアドレスやhttp://で始まるURLに関して自動的に挿入されると思うのですが、私の場合は、何も入力していないセルにmailto:のハイパーリンクが挿入されてしまっています。 その影響で、作成したExcelファイルが数十メガにもなってしまっています。 ウィルスチェックもしてみましたが、感染はしていませんでした。 どなたか、同じような事例の経験がある方がいらっしゃいましたら、よろしくご教授ください。 お願いします。
- 締切済み
- その他([技術者向] コンピューター)
- EXCELのハイパーリンク
EXCELのハイパーリンクについて教えて下さい。 EXCELにて700件程のハイパーリンクを作成しようと考えていますが数が多いため1件ずつハイパーリンク先を設定するには多くの時間と労力を要しますのであらかじめローカルフォルダ名とファイル拡張子を入力しておき、ファイル名だけを入力すればハイパーリンクを自動設定する方法はないでしょうか? お手数ですがお知恵をお貸し下さい。宜しくお願いします。 例) ・セルA1にローカルフォルダ名又はURLの一部 ・セルB1にファイル名又はURLの一部 ・セルC1にファイル拡張子又はURLの一部 これらを結合(A1&B1&C1)したハイパーリンク先をセルD1に表示すると共にセルD1をローカルフォルダ内のファイル又はサイトを自動的にハイパーリンク設定させる。
- ベストアンサー
- オフィス系ソフト
- エクセルでハイパーリンク
エクセルシートにメールアドレスを入力すると自動的にハイパーリンクになってしまいます。 ハイパーリンクにならない方法を教えてください。お願いします。
- ベストアンサー
- オフィス系ソフト
お礼
おかげさまで、できました。 ありがとうございました。