Vagrantが立ち上がらなくなったのはRapportが原因だった

Vagrantが立ち上がらないのを急ぎではないと放置していたのだけれど、必要に迫られてあれこれやっていたら、Rapportが原因だったという。

アンインストールするにも、いちいち公式サイトからアンインストールツールをダウンロードする面倒くささ。(しかもアンインストールツールのダウンロードは、メールでリンクが送られてくるという面倒くささ)

アンインストールしたら解決した。

参考

Surface Pro 4 の Type Cover が急に認識されなくなった問題の解決へのメモ

ある時急にType Coverが認識されなくなった。
バックライトは点灯しているので、通電はしている模様。

検索して、まずは少し古い情報だけれど下記サイトにたどり着いた。

[続報あり]Type Cover が認識されなくなった件について | rksoftware

なるほど、「ツー ボタンによるシャットダウン」ね、と思ってやってみたものの、改善せず。

下記からSurface Pro 4用のドライバを取得してインストールしてみるも、やはり改善せず。

Download Surface Pro 4 Drivers and Firmware from Official Microsoft Download Center

これは困った。

タッチスクリーンは機能しているので、ソフトウェアキーボードで文字を入力することは出来るのだけれど、さすがにちょっと不便。

本体側の問題なのか、Type Cover側の問題なのかが分からないと何ともなので、後日別のSurfaceにType Coverを接続したら普通に認識して使えたので、Type Coverに原因がない事ははっきりした。
Type Coverの買い換えは避けられたので、ひとまずほっと一息。

ここまでのことを、何気なくTwitterでつぶやいた。

すると @roentgen さんにリツイート&いいねしていただいたので、タイムラインを覗いたところ、@0S03667 さんの下記ツイートがリツイートされていた。

この方のブログ記事では、結局初期化したとのことで、その手段は絶対に出来ないとまでは言わない(仕事用デスクトップPCがあるし)けれど、出来れば避けたいなぁ、と思うところ。

このリツイートに続いて、@roentgenさんはこのようなツイートをされていた。

「KB4074588」というキーワードで検索すると、「KB4074588でマウス・キーボード操作不能になる問題の回避方法、なるべくダメージを受けない様にする方法 - ぼくんちのTV 別館」というページを発見。
Windows Updateで2018年2月14日に配信配信されたらしい。

このページには「回避方法」しか書いていないので、ページ内で紹介されていた「2018年2〜3月版: マウス・キーボード・USB機器などが認識出来なくなる問題の対処方法 - ぼくんちのTV 別館」を参考に、「KB4074588」をアンインストール。

ところが、これがまた何故かアンインストールが完了しない。
何時間もかかっても完了しない。

仕方がないので「キャンセル」したところ、一覧にないのでどうもアンインストールされているような気がする。

ということで再起動したら、無事にType Coverを認識してくれたのであった。

同じように誰かが困って情報を探すかも知れないので、ここにこうしてメモを残しておく。

InDesignにおけるオブジェクトの値を調べる

InDesignのScriptはネット上にも情報が少ないのだけれど、「オブジェクトモデルビューア」でどんなプロパティがあるかが見られるので、それで調べれば良いというところまで行き着いた。

そして「ブラウザ」欄が初期状態で「Core JavaScript Classes」になっているので、ここを「Adobe InDesing CC 2018 Object Model」(バージョンによって違うと思う)に直す必要があることも理解した。

ただ、最初に「Adobe InDesing CC 2018 Object Model」に切り換えた時は、「オブジェクトモデルを保存しています」になってから反応が途絶えた。

対処法としては、オブジェクトモデルビューアを一度閉じて開き直す。
すると「ブラウザ」の欄に、私の今日時点の環境では

  1. Adobe InDesing CC 2018 (3.0) Object Model
  2. Adobe InDesing CC 2018 (4.0) Object Model
  3. Adobe InDesing CC 2018 (5.0) Object Model
  4. Adobe InDesing CC 2018 (6.0) Object Model
  5. Adobe InDesing CC 2018 (7.0) Object Model
  6. Adobe InDesing CC 2018 (7.5) Object Model
  7. Adobe InDesing CC 2018 (8.0) Object Model
  8. Adobe InDesing CC 2018 (9.0) Object Model
  9. Adobe InDesing CC 2018 (10.0)
  10. Adobe InDesing CC 2018 (10.1) Object Model
  11. Adobe InDesing CC 2018 (10.2) Object Model
  12. Adobe InDesing CC 2018 (11.0) Object Model
  13. Adobe InDesing CC 2018 (11.2) Object Model
  14. Adobe InDesing CC 2018 (11.3) Object Model
  15. Adobe InDesing CC 2018 (11.4) Object Model
  16. Adobe InDesing CC 2018 (12.0) Object Model
  17. Adobe InDesing CC 2018 (12.1) Object Model
  18. Adobe InDesing CC 2018 (13.0) Object Model

が出てきたので、使いたいものを選べば様々なプロパティを見ることが出来る。

Wordを扱う際にVBAとVBとの違いに戸惑わないための備忘録

VBでWordを操作する処理を作る際、Word VBAで動作を確認したものをVBに持ってくるというやり方を基本的にしている。

が、それだと上手く行かないことがあったので、ここに備忘録としてメモしておきたい。

例えばこれ。

VBA

Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend

単純に考えると、下記のような感じで動きそうな気がする。

Word.Selection.MoveLeft(wdCharacter, 1, wdExtend)

(「Microsoft.Office.Interop.Word」は、以下「Word」と表記)

でも動かない。

「'wdCharacter'は宣言されていません。アクセスできない保護レベルになっています」
「'wdExtend'は宣言されていません。アクセスできない保護レベルになっています」

と怒られてしまう。

ああそうか、と思って

Word.Selection.MoveLeft(Word.wdCharacter, 1, Word.wdExtend)

とやっても、

「'wdCharacter'は'Microsoft.Office.Interop.Word'のメンバーではありません」
「'wdExtend'は'Microsoft.Office.Interop.Word'のメンバーではありません」

と怒られる。

正解は

Word.Selection.MoveLeft(Word.WdUnits.wdCharacter, 1, Word.WdMovementType.wdExtend)

であった。

「wdCharacter」は「Microsoft.Office.Interop.Word.WdUnits」のメンバーであり、「wdExtend」は「Microsoft.Office.Interop.Word.WdMovementType」のメンバーという訳だ。

分かればどうという事はないけれど、ちょっと躓いたのでメモ。

データの内容に応じてオートシェイプを配置していく

ちょっと聞かれたので、回答用にここにメモ。

「データ」シートに下記のようなデータがあるとする。

A B
1 a 2
2 b 3
3 c 2
4 d 4
5 e 1
6 f 6
7 g 3

このデータを読み取って、下記要領で「結果」シートに書き込みを行う。

  • 「データ」シートのB列の値を「結果」シートのD列に転記
  • データの転記は3行おき
  • 転記した値を元に、転記した行にオートシェイプを配置する
  • オートシェイプの幅は、転記した値に比例する

色々な書き方が当然あるだろうけれど、ざっくり作ってこんな感じでいかがでしょうか。

Sub main()
Dim row As Long

    row = 1
    
    With Sheets("データ")
        Do Until .Range("A" & row).Value = ""
            Call setShape(.Range("B" & row).Value, row)
            row = row + 1
        Loop
    End With
End Sub

Private Sub setShape(v As Long, dataRow As Long)
Dim shapeRow    As Long
Dim shapeTop    As Long
Dim shapeLeft   As Long
Dim ShapeWidth  As Long
Dim shapeHeight As Long

    shapeRow = ((dataRow - 1) * 3) + 1

    With Sheets("結果")
        shapeTop = .Range("E" & shapeRow).Top + 3
        shapeLeft = .Range("E" & shapeRow).Left + 5
        ShapeWidth = v * 10
        shapeHeight = 6.75
        
        .Range("D" & shapeRow).Value = v
        .Shapes.AddShape(msoShapeRectangle, shapeLeft, shapeTop, ShapeWidth, shapeHeight).Select
    End With
End Sub

なお、棒グラフ的なものを表示したいという場合には、Excel2007からは「データバー」という機能があるので、そちらを使うことをお勧めしておく。

Chromeで起動時に毎回『拡張機能「○○」は自動的に削除されました。』の通知が出て困った場合の対処法

※ 2016/7/14 追記
その後、やはり当該メッセージが表示されてしまいました。
この方法だけでは当該メッセージの表示を止める事は出来ないようです。

      • -

以前Chromeに入れていた拡張機能「webページショット - Webpage Screenshot」が、ある時Chrome側で削除された(スパイウェアだったらしい)。

それは良いのだが、それ以降Chromeを起動する度に

拡張機能「webページショット - Webpage Screenshot」は自動的に削除されました。

というメッセージがいちいち表示されるようになった。

拡張機能の一覧を見ても、削除されているのでもちろん当該拡張機能は存在しない。

Chrome 通知 削除されました」で検索してみると、「削除した拡張機能の確認が何度も表示される webページショット - Google プロダクト フォーラム」というページが見つかるのだが、試行錯誤のやり取りの結果、「これで解決するっぽい」と提示された手段は

  1. Chromeの設定→googleダッシュボードで同期データを全削除
  2. 同期の詳細設定を開いて再同期
  3. googleアカウントを切断
  4. ユーザーも全削除
  5. 再起動
  6. Chromeの設定にアカウントを入れて同期

というもの。

それで解決するならそれはそれで良いのだが、通知1つを消すためにかなりの労力である。

そこでさらにあれこれ調べていたところ、別の拡張機能だが通知を削除する手段を記したページを見つけた。

Chromeの拡張機能「Tab Position Customizer」を消す。

この手法を参考に、「webページショット - Webpage Screenshot」の場合は対象フォルダとファイル名を「ckibcdccnfeookdmbahgiakhnjcddpki」に読み替えると対処できる模様。

この文字列は、Chromeの設定にある拡張機能の一覧で確認できる拡張機能のIDなんだと思う。
消えてしまった以上、確認する術はないけれど。(検索すればネット上から発見できる可能性はある)

面倒な手法を採らずに済んで良かったので、誰かを助ける事もあるだろうからここにメモとして残しておく。