- ベストアンサー
エクセルでのスキャニングしたデータのハイパーリンクのマクロ化が出来るか?
各種契約書など既存の紙ベースで保管されていたものを外注でスキャニング(TIF)して 分類・運用・管理を任されました。 いくつか、平行して行っているのですが、今回の”自家用通勤許可願い”の場合は 既存にエクセルで管理表があり、分類通し番号が振られています。紙も同じ通し番号が 振られているために外注にはその通し番号をファイル名で振ってもらいました。約1000枚 6桁での番号(000001.tif~)です。 他の案件で量が少ない物でアクセスで運用する必要が無いものは1件づつまとめたフォルダ自体に 手動でハイパーリンクを貼っています。 今回の場合は量が多いので手作業は避けたいのですが、単純にTIFのフォルダを検索すれば済みますが 出来れば今後の事も考えて、マクロで組めるものなのか、組むとしたらVBAになるのかなどを教えて 頂ければ助かります。また、他の根本的な違った方法などもあれば教えていただきたいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 #2 の回答者です。 >入っているので、この方法だと”レジストリ変更”か”方法1”でも >使用する端末全てを変更する必要があると思われるのですが如何でしょうか? レジストリを変更するのと、マクロで、を変更するのとは、同じことになってしまいますから、ヘタをすると、会社のセキュリティに関わってきてしまいます。 会社のは、やむを得ず、方法1 の以下の方法になりますね。 [方法 1 : 対象ファイルのファイルの種類をチェックするための [ダウンロード後に開く確認をする] オプションをオフにする ] しかないように思います。 以前、同じようなことを試したことがあるのですが、他の方法(IE で、イントラのセキュリティを下げる)では、私には、解決しなかったことがあります。(間違っているかもしれません) >お勧めなサイトか参考書 >(出来れば金銭的に負担の少ないかわかりやすいものがいいのですが・・・) お金の問題というのは、誰でも先の分からないものに、お金を投資などしたくないものです。しかし、人は、お金を掛ければ掛けるほど、それに執着するものだと思います。だから、お金を掛ければ、そこそこには上達はするものなのですね。VBAの学校に入門から上級まで行くと、だいたい、30~40万円かかってしまいますから、それを思うなら、書籍で、4~5,000円は我慢してもらわないと、上達は難しいように思います。 私は、Webサイトは、あまりお勧めするところがありません。 http://officetanaka.net/ Office TANAKA の田中亨氏や、 http://www.asahi-net.or.jp/~ef2o-inue/top01.html Excelでお仕事 の井上氏 などのサイトがありますが、ものすごく中途半端な気がします。基礎的なことは基礎的なことで十分なのです。それ以上に、求める必要がないと思っています。 構造化がどうとか、goto がどうとか、Select が問題だとかいう人がいます。また、中には、コンマ0.5秒が遅いからとかいうクレームをつける人さえいます。ワザを競い合うとか、誰かにコードを見せることもなければ、型やスタイル(スマートさ?)にこだわることもありませんし、BASIC コードが書けるなら、VBAとしての基本構文とVBA関数のいくつかを覚えれば良いのです。究極的には、記録マクロを取って、それを直せればよいです。 掲示板の回答者として、ある程度続けると、時に、意地の悪い野次が入ったり、エラーが出るからダメとかいうことになるから、ある程度の緊張を持ったコードを書いているだけです。 私のお勧めは、Moug の大村あつしさんの http://www.amazon.co.jp/exec/obidos/ASIN/4774119660/ かんたんプログラミング Excel2003 VBA 基礎編 (単行本) \2,499 (税込) (3部の最初の編)
その他の回答 (2)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんぱんは。 HYPERLINK(リンク先,別名) を使って、 例えば、My Document のフォルダにあるとします。 =HYPERLINK("C:\My Document\" & TEXT(ROW(A1),"000000") &".tif",TEXT(ROW(A1),"000000") &".tif") と一つ入れたら、後は、オートフィルでドラッグ・コピーして作ってもよいと思います マクロなら、 'ただし標準モジュールです。 Sub Test1() Dim UpTo As Long Dim i As Long Const myPath As String = "C:\My Documents\" '上限 UpTo = 1000 For i = 1 To UpTo ActiveSheet.Hyperlinks.Add _ Cells(i, 1), _ myPath & Format$(i, String(6, "0")) & ".tif", , , _ Format$(i, String(6, "0")) & ".tif" Next i End Sub
補足
大変ありがとうございます。貴殿様のHYPERLINK関数のドラッグ&ドロップで 行うことが出来ました。 ただ、リンクする時に警告表示が出るので調べた結果、http://support.microsoft.com/kb/829072/ja で解決方法があったのですが、現在管理しているエクセルは会社の共有に 入っているので、この方法だと”レジストリ変更”か”方法1”でも 使用する端末全てを変更する必要があると思われるのですが如何でしょうか? マクロについては、自分の知識ではエクセル自体も初心者かよくて中級者程度なので、難しいようです。ですが、スキルアップとしてエクセル自体と マクロVBAの勉強をしたいと思うのですが、お勧めなサイトか参考書を よろしければ教えていただければ(出来れば金銭的に負担の少ないかわかりやすいものがいいのですが・・・)思います。
- DIooggooID
- ベストアンサー率27% (1730/6405)
下記のものは、単に A1セル から A1000セル までにハイパーリンクを 設定するものです。 xxxxx.tif ファイルは、 C:\TEMP にある前提です。 ( 000001.tif ~ 001000.tif まで千個あります。) Sub Macro_x() Dim num_1 Dim num_2 Dim txt_1 Dim fom_1 num_1 = 0 num_2 = 1 fom_1 = ".tif" Range("A1").Select ' Do Until (num_1 >= 1000) num_1 = num_1 + num_2 If (num_1 < 10) Then txt_1 = "00000" & num_1 & fom_1 ElseIf (num_1 < 100) Then txt_1 = "0000" & num_1 & fom_1 ElseIf (num_1 < 1000) Then txt_1 = "000" & num_1 & fom_1 ElseIf (num_1 < 10000) Then txt_1 = "00" & num_1 & fom_1 ElseIf (num_1 < 100000) Then txt_1 = "0" & num_1 & fom_1 End If ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _ "C:\TEMP\" & txt_1, TextToDisplay:=txt_1 ActiveCell.Offset(1, 0).Select Loop End Sub
お礼
改めて質問させていただこうと思いますので 今回はありがとうございました。
補足
大変ありがとうございます。しかし、残念ながら自分の知識では貴殿様が 書いていただいたものを応用して使用するまでの知識がわたしにはありませんでした。せっかく書いていただいたのに申し訳ございません。 ですが、出来れば自分もマクロをある程度使えるようになりたいので 回答2様につけた補足のように学ぶ方法をおしえていただければと思います。20年近く前にBACICで簡単なプログラムを組んだりした経験はあります。 エクセルは2年ほど前はそれなりに使用できていたのですが、ブランクが あったためにかなり忘れている部分があります。 もし、よろしければ教えていただければ幸いです。
お礼
丁寧なご回答ありがとうございます。 Wendy02さんのお勧めの書籍くらいの金額であれば入門として 試すのに良いと思いますので、その書籍を本屋で見てみます。 私自身、wordやエクセルもまだ中途半端ですので、全て基礎から やりたいと思っていますので、試してみます。 また、警告の件はとりあえずは使用する人間は限られていますので 方法1以前に一斉通知すればとりあえずは済みそうです。 wordやエクセルもブランクがあったので最近使用し始めたのですが 基礎的な事も忘れている始末なので、wordやエクセルも学ばないと いけないと思います。改めて学び方などを質問させて頂きたいと 思いますので今後もよろしくお願いします。 最後にお忙しい中大変ありがとうございました。