Excel ドロップダウン リストがバージョンによって表示されない時の対処法

別シートのセルを参照はExcel2010からの機能で、2007とかでは使えないのでした。

Excel 2007、2013の両方で別シートのデータをドロップダウン リストに反映させるにはどうすればいいか?
この場合は、Excel 2007以前から使われてきた「選択範囲に名前を定義する」機能を使います。


ネタ元

ExcelVBAで文字列を16進数に変換

文字列→16進法

Private Function StrToHex(ByVal strData As String) As String '文字列→16進法
    Dim strChar As String
    ReDim strHex(1 To Len(strData)) As String
    ReDim lngNu(1 To Len(strData))
    For i = 1 To Len(strData)
        strChar = Mid$(strData, i, 1)
        strHex(i) = HEx$(Asc(strChar))
        lngNu(i) = Len(strHex(i)) '16進法の値の桁数を格納
    Next
    StrToHex = Join$(strHex, vbNullString)
End Function

Dim HexData
HexData = StrToHex(ItemName)
        
MsgBox HexData

ネタ元

Windows10で.Net Framework 3.5がインストールできない場合

Win10 DVD isoをマウントして 管理者権限のコマンドプロンプトで以下を実行

(マウントしたドライブがDドライブの場合)

C:\ DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:d:\sources\sxs

アクセスできないとかいわれるようなら、何かしらのアプリが.NET使ってるとおもわれるので
再起動してからチャレンジをオススメ

ネタ元

VB.netでSelenium

準備編

プロジェクトでの準備

  • 参照の追加をする
    • ダウンロードしたSeleniumのモジュールの中を解凍して、プロジェクトのフォルダのどこかに置く
    • Visual Studio のメニューから「プロジェクト → 参照の追加」を選択します。
    • 「参照マネージャ」ダイアログが開くので、展開したファイルのうち、以下をまとめて参照します。
      • Selenium.WebDriverBackedSelenium.dll
      • ThoughtWorks.Selenium.Core.dll
      • WebDriver.dll
      • WebDriver.Support.dll

サンプルコード

Imports OpenQA.Selenium
Imports OpenQA.Selenium.PhantomJS

Module Module1

    Sub Main()

        Dim WebD As IWebDriver

        WebD = New IE.InternetExplorerDriver()

        SearchGoogle(WebD) 

        WebD.Close()
        WebD.Quit()
        WebD = Nothing

    End Sub

   Sub SearchGoogle(aObj As IWebDriver)

        aObj.Url = "https://www.google.co.jp"

        Dim element As IWebElement
        element = aObj.FindElement(By.Name("q"))

        element.SendKeys("Cheese!")
        element.Submit()

    End Sub
End Module

IE で「NoSuchElementException」エラーになってしまう場合

IEDriverServer を正しい位置に配置し、サンプルコードにも問題が無いのに IE でのみ、「NoSuchElementException」が発生する場合があります。この場合は IE のインターネットオプションからセキュリティタブを選択し、全てのセキュリティゾーンに対して「保護モードを有効にする」へチェックしておきます。

f:id:shikaku:20170224173417p:plain

ExcelVBAでJSONを扱うためのモジュール「VBA-JSON」

https://github.com/VBA-tools/VBA-JSON

使い方のサンプル

連想配列 Dictionary と、可変配列 Collection を使って JSONオブジェクトにデータをセットする
 '---------------------------------
 ' リクエストパラメタ生成
 '---------------------------------
 Dim JsonObject As Object
 Set JsonObject = New Dictionary

 JsonObject.Add "id", 1

 JsonObject.Add "name", "John Smith"

 JsonObject.Add "friend_ids", New Collection
 JsonObject("friend_ids").Add 10
 JsonObject("friend_ids").Add 20
 JsonObject("friend_ids").Add 30

 JsonObject.Add "shipTo", New Dictionary
 JsonObject("shipTo").Add "name", "Appirits Inc."
 JsonObject("shipTo").Add "address", "5F Kyocera-Harajuku Bldg. 6-27-8, Jingumae, Shibuya-ku"
 JsonObject("shipTo").Add "city", "Tokyo"
 JsonObject("shipTo").Add "state", "Japan"
 JsonObject("shipTo").Add "zip", "150-0001"

 ' イミディエイトウィンドウで確認(デバック用)
 Debug.Print JsonConverter.ConvertToJson(JsonObject, Whitespace:=2)

Dictionary を使うには参照設定で「Microsoft Scripting Runtime」をONにする
f:id:shikaku:20190312140956p:plain

HTC Viveが認識しなくなった際の対応方法

USB3.1接続からUSB2.0接続へ変更する
HTC ViveのUSBドライバを削除する
ドライバを再インストールする
ダイレクトモードになっているか確認する
ケーブルをディスプレイポートケーブルからHDMIに変更する
CPU内蔵のGPU(マザーボードから出力)を利用しない
OSをWindows10にクリーンインストールする
Windowsのユーザー名を半角英数に変更する
デュアル(マルチ)モニタを利用しない
グラフィックドライバを最新にする、SLIを一時的に無効にする
ASUS AI Suiteを無効化する


ネタ元