なずブログ

インフラSE、Java開発、リモートワークエンジニアな人のメモ帳

Excelで作ったリンク集が使いにくいとかんじたら

f:id:nazuna_0124:20170310221050p:plain

う~ん。さすがに数ヶ月触ってないのでかなり忘れています。

復習がてらHTAとVBSの話題です。


業務だと共有フォルダやExcelに直接リンクが貼れるので

Excelでリンク集作ることが結構あります。


普通に使えるんですが、、、これがなかなか使いにくいんです。

特にExcelのバージョンが2010以前だと、例の

ブックが1グループに固まって開く問題のせいで

リンク集として使いつつ何かってのがやりにくいです。


Excel ウィンドウ 複数なんて検索をした方にも

おすすめの方法。


要するにVBSとHTAですね。

ブラウザチックなのに、ローカルにアクセスできる強みがあります。

htmlだとIEのバージョンとセキュリティの設定によっては出来たりも。


もしかするとこれも環境によるのかもですが、コードはこちら

めんどいのでごちゃごちゃするので、hta用の設定なんかは

はぶちゃってます。


<html>
<head>
<title>リンク集</title>
</head>
<body>

<input type="button" value="エクセルファイルを開く" onClick="OpenXls('c:\\test\\test.xls')">
<a href="#" onclick="OpenFolder()">フォルダを開く</a>

</body>


<script language="VBScript">

Sub OpenXls(filePath)
    Dim xls
    
    
    abcd = "c:\test\test.xls"
    
    On Error Resume Next
    
    Set xls = GetObject(, "Excel.application")
    
    If Err.Number <> 0 Then
        Set xls = CreateObject("Excel.applicaton")
    End If
    
    xls.Visible = True
    
    
    xls.Workbooks.Open filePath
    
    CreateObject("WScript.Shell").AppActivate xls.Caption

End Sub

Sub OpenFolder()
    Dim folderName  
    
    folderName = "C:\test"

    CreateObject("Shell.Application").ShellExecute  folderName

    Set objShell = Nothing


end sub

</script>
</html>


適当なフォルダを作ってるので以下の手順で使ってみて下さい。

  • Cドライブに[test]フォルダを作成

  • testフォルダに[test.xls]ファイルを作成

  • テキストファイルにソースを貼り付けて、拡張子をhtaにして保存


あとはhtaを開いて、ボタンかリンクをクリックして試してみて下さい。


んで、元々あったExcelリンク集をこのHTAを生成するように

VBAでコード作っとけば

管理はExcel、動作はHTAと、とっても使いやすいです(たぶん)