空談録

世界で5人くらいに役立ちたい

Office 2016 ver 16.0.6769.2011 (Office Insider) とMarchアップデートのお話

情報を一度に出してくるスタイルやめてくれえええええ

というわけでOffice Insider向けに6769.2011が公開されたようです。更新内容なんぞこれ…Marchアップデートに混ぜてよかったじゃん…とか思わなくもない

フォーラムの記事はこれ
http://answers.microsoft.com/en-us/office/forum/office_insider-registration/announcing-insider-build-16067692011-for-office/d535aa35-bf71-4d25-858b-3e37e4826b0b

また、Office Blogでいつもの発表だけMarchなアップデート情報が出ています
blogs.office.com

Insiderのアップデートで何も書くことがないので早めにMarchアップデートの話に移りましょうね

ver 16.0.6769.2011 の変更点

フォーラムの内容をまとめると
・統合したPower Queryのバージョン上げたよ
・OneDriveの画像検索を強化したよ
・OneDriveの共有方法にメールを追加したよ

確かつい最近見た記憶で比較するとPower Queryが2.30から2.32.4307に上がった気がします
Power Queryのバージョンもわからなければリファレンスも消滅して変更点とかわかりません。Power BI追ってる人とかいたら教えていただきたく…
Power BIの同じバージョンだとこの話らしいです
powerbi.microsoft.com

どれがPower Queryの話なんですかね…


下2つのOneDriveの話はOneDriveって言ってますがおそらく個人のOneDriveではなくOneDrive for Businessだと思われます
助けてid:kazuakix

あと細かい話ですがチャンネルの表記がまた変わったようです
Office Insider→First Release for Current Channel(Office Insiders)になりました。
f:id:fantasticswallow:20160325100032p:plain

現在の分岐よりはマシかな…

Marchアップデートについて

早くこっちに移ろうねって書いたけどそもそもこっちも書くことないという
大丈夫きっとkazuakixって人がまとめてくれる

クライアント周りで関係ありそうなところだけ書くと
OneNote Importer toolで今日からEvernoteじゃなくてOneNoteを始めようぜ
OneNote手書き検索がどうこう
PowerPoint Designerの機能強化
・Office for MacSkype Translaterの対応言語を増やした

あとはOffice 365すぎてよくわかりません

一番上はすでに提供されてますしニュースも出てるのでそっちでどうぞ
www.itmedia.co.jp

OneNote手書き検索についてはよくわかりません
現在でも認識できていれば画像へのハイライトもできますしうーん
まあ詳しいのは実際降ってきたらわかるでしょう

対応言語がうんぬんはMac版で右から左に書く言語を増やしたようです。
Skype Translaterは8個くらい追加したらしいです。日本語はなさそうです

で、PowerPoint Designerについては詳しく書いてあるブログがこれ
blogs.office.com

適当に書き出すと
複数画像をDesignerで追加できるようにした
・画像からアクセントカラーを抽出するようにした
・顔認識をしてそれっぽい位置に配置できるようにした
とのことです。来たら調べますが今までのよくわからない機能からはだいぶ進化してると思います。


まあなんにせよMarchアップデート待ちですね
Designerはもうちょっと頑張ってほしいなぁとは思いつつ

最近作ってる何かがもうちょっとで動かせるかなーってところまでいくのでMarchアップデートの記事より先にそっちが書けるかなぁというところ

この辺で

Office 2016 ver 16.0.6741.2017がOffice Insider以外にも公開されるようです

MorphもBlack Themeもないレガシーおひすを使うくらいならと思ってたらちょうどよい情報がきた

というわけで今のOffice 2016のバージョンは皆さま何をお使いかは知りませんが、Office Insiderと普通のOfficeのバージョンが同一となるアップデートを公開したらしいです
Non-InsiderなOfficeがないのでよくわかりませんけど

フォーラムの通知はこんなん
http://answers.microsoft.com/en-us/office/forum/office_insider-office_install/announcing-insider-build-16067412017-for-office/4e2552cd-1384-419e-9e70-bc765f924edc

Starting today, 3/17/16, we are rolling out update 16.0.6741.2017 to the rest of the world (announcement), so for now, Insiders and non-Insiders are on the same version of Office 2016. You'll get a new update soon.

ようやく本来のバージョンがなんだかわからない事態から脱出するようです。ところでInsiderはお払い箱なんですかね?

とりあえずアップデート内容をまとめましょう(6741.2014→6741.2017)

Instant Inkingを無効にするオプションの追加

「今までペンで要素を選択してたんですけどおおおお!!」って声が多かったらしいのでペンを使ったとき、既定で要素を選択するオプションが追加されました
Option→Advanced→Penにあるチェックボックスを入れれば可能です

f:id:fantasticswallow:20160318095833p:plain

画像らへんにオプションが増えてるはず

ExcelのDrawタブの挙動が戻った

ExcelにDrawタブが復帰したぞ!→またずれるんですけどどどどどd
6741.2014の儚き栄華…

DrawタブにDraw with Touchボタンの追加

いつ生えたのかわかりませんが、このボタンがめっちゃ曲者です
今まではペンを選択すればペンで描けましたが、6741.2017?からは"Draw with Touchを有効にしているとき"のみペンで描けます
つまりペンで描くときの動作が
いままで:Drawタブ→ペンの選択→ペンで描く→カーソルの選択
現在  :Drawタブ→(ペンの選択)→Draw with Touchを有効にする→ペンで描く→Draw with Touchを無効にする
という感じになります。ステップ数が減らない……だと……

何がやっかいかってTouchって言ってるくせにマウスとかのポインター操作も引っ張られる点です。最初描けなくて悩んだり

非インサイダーにも来るんでしょ?私のOfficeの何が変わるの?

そうはいっても今のバージョンがなんだかわかりませんという

前のOfficeのバージョンがどれだかわからないのでいくつか羅列しとくと
・16.0.6568.x系(すでにDrawタブがある)
Februaryアップデートのみです。フォーラムにちょうどいいのがあるのでそちらでも
http://answers.microsoft.com/en-us/office/forum/office_2016-office_install/announcing-build-16067412017-for-office-2016-on/3fc297cf-d5ab-44dd-b7f7-906a5775f9b7?tm=1458246351022

・16.0.6366.x系(MorphとDesignerはあるかな…)
さっきのFebruaryアップデートとJanuary アップデートですね
Junuaryアップデートはこの辺に書いた気がする
artfulplace.hatenablog.com
Drawタブ、黒テーマ、ワークシート関数の追加とかで結構多いです

・16.0.6001.x以前(Morphとかないんですけど!)
FebruaryアップデートとJanuaryアップデートとNovemberアップデートですね
上から順にURLを開けばいいと思います

Novemberアップデートはこの辺
artfulplace.hatenablog.com
artfulplace.hatenablog.com

自分にあったバージョンを見てください。とりあえずすでにCurrent Channelは16.0.6741.2017で配信してるみたいです
自分のバージョンがこれなんですけど!っていう情報が来たら書き換えます

そもそもMS公式にアップデート内容出してるのでそっちで追えばいい気がした
support.office.com
日本語? Februaryアップデートが載ってないし………


ということで新しいバージョンの話といままでのまとめ的なところでした
Deferredが動いてないから全ユーザーとはならなそうですがまあいつか役立つでしょう

この辺で

Office 2016 ver 16.0.6741.2014が出ました (Office Insider)

試せる機能がない、つらい

というわけで昨日Insider向けに出てたようです
フォーラムの記事はこちら

http://answers.microsoft.com/en-us/office/forum/office_insider-registration/announcing-insider-build-16067412014-for-office/5aafa2d9-49d7-4097-bab3-a536da085136

そういえば今回とは関係ないのですが、「Drawタブにあるインク機能は2010の頃からあった」ことを最近知りました。本当に申し訳ないです。そもそも私のブログで情報追ってる人間がいないとは思いますが
(Drawタブに分離したのは最近ですが、Convert to Shapeなどは2010からあるらしい)

新機能について

そもそも私は試せないからどういう機能かわからないんですけど…
じゃあ書くなって?まあそうなんですけど

・Archiving and de-cluttering
・Collaboration made easy with Office 365 Groups
・Do more with Power BI
ということらしいですね。上二つがOutlook、一番下がExcelがターゲットとなります

Archiving ~のやつはリボンのHomeタブにDeleteグループが増えた…ってことなんですかね。Outlook使ってないからわからん…
Archiveのボタンを押すとArchiveのフォルダに一発で転送できます。de-clutteringについてはClutter使えないので知らんとしか…
助けてOffice 365のプロ

Collaboration ~ のほうはOffice 365グループにつなぎやすくなりました的なやつかと
ボタンが増えてるらしいです。見つかりませんでしt
助けてOffice 365のぷr

Do more with ~はpowerbi.comを発行先に指定できるようになった…とかなんですかね
当然ですがPowerBI登録してないので知りませんし……GUNUNU
(お前Power Query使ってたじゃんって? Power BIにはPower BI for ExcelとPower BI for O365版があったんですよ…そしてfor Excelは普通に誰でも使えて今やほぼ統合されたんですよ… 昔からO365のほうは登録してないと使えなかった)

というわけで以上が新機能となるそうです。私は使える機能がなさすぎて書くことがありません

おや…Excelのようすが…?

16.0.6366.xのとき、私はプライマリと解像度が違うセカンダリスクリーンなりでペンを使うとずれるということを書きました
ところが16.0.6741.2014で直っています!!やったぜ!!Excelでもお絵かきができる時代だ!!!
Word?知らんなぁ

さっそくお絵かきするぞ!!
…なんかDrawタブないんですけど……

f:id:fantasticswallow:20160310135639j:plain

どういうわけだか知りませんがDrawタブが「Excelのみ」消失してもとのReviewタブのStart Inkingに戻されています
実体は存在するみたいなので謎
ちなみにPowerPointとWordにはDrawタブは残っています

Excelでお絵かきする勇者の方はTell Meに"Ink Annotations"と入力しましょうね、日本語の操作アシストの使い方は知りません。"インク"とか入れれば候補には出るかと


というわけでなんか変わったらしいですよという話でした
Convert to Shapeの話、前からあるという割にはググっても一切出てこないので謎すぎる
誰も使ってないということなんだろうか

この辺で

ストアのPhotoアプリからSwayにアルバムをアップロードできるようになってた

久々にSway見たらどこに向かってるんだこれは…

Office BlogでSwayじゃなくてMicrosoft PhotoのアップデートでSwayが作れるよ!って記事が出てますね
blogs.office.com

Living Imageって何?って思ったらこれっぽいですね
blogs.windows.com
"in the Windows 10-enabled Microsoft Lumia 950 and Microsoft Lumia 950 XL " あっはい…Japaneseには関係ないですね…
興味があったら黒い人のブログに投げてみるとよいでしょう。きっと書いてくれるはずです。たぶん

PhotoアプリからSwayに転送してみよう

とりあえず私のブログではこっちだけ取り上げましょうね

まずはPhotoアプリのアルバムのところから新しいアルバムを作りましょう
f:id:fantasticswallow:20160304195755j:plain

画像の右上のやつですね

アルバムの画像を選択する画面になると思うのでそのまま適当に画像を選択しましょう
選び終わったら右上の✓を押せば選択完了です
f:id:fantasticswallow:20160304200036j:plain

あとはアルバムの名前を入れて保存すれば作成完了ですね(画像どっかいった)

で、完成したアルバムの一番下までスクロールするとこんなボタンが並んでいるので"Swayのストーリーテリング"を押しましょう
f:id:fantasticswallow:20160304200233j:plain

するとSwayへのアップロードが始まります。終わると"今すぐ開く"みたいなリンクとかトーストが焼かれますのでその辺を押すとSwayが開きます
作成されたSwayがこんな感じ
f:id:fantasticswallow:20160304200356j:plain

めんどくさいのでそのままリミックスした結果が次のSwayです

なんでしょう。画像の共有にはすごい便利そうなんですけどSwayってこういう子でしたっけ…?


というわけで私の脳内では画像共有サービスSway爆誕!みたいな感じになりました。
すごい手軽に作れるので撮った画像のギャラリーを作る~みたいなときには0.1秒くらいSwayという選択肢を入れてもいいかもしれません。入れなくていいかもしれません

コメントは入れやすいと思いますけどうーn
そもそもSwayの使い方がよくわからないのでなんともいえない

この辺で

UWPとかでRichTextBlockにリッチなテキストをバインドしたい

Surface RTでも動かしたいからWindows 8.1に対応するんだ!!→いますぐ捨てよう??→ぐわああああっ

というわけで(??)RichTextBlockじゃなくても動くと思うんですけど(挙動に差があるけど)、TextBlockでURLを出したいっていうお話です
自分で解決できなかったのでその辺も含めて書いときます

@okazukiさんと@tmytさんにはこの件について本当にお世話になりました。ありがとうございますありがとうございます

せっせと話を進めていきましょう

RichTextBlockってプロパティ生えてないの?

ないの

RichTextBlock class - Windows app development を見ればわかりますが、RichTextBlockにはTextとかContentみたいなプロパティはいません
ちょっと見てればわかりますが、コンテンツを表示する場所はRichTextBlock.Blocksであることがわかります。しかし! このプロパティはReadOnly! バインドどころかBlockCollectionをコードから突っ込むなんてこともできないわけですね

ついでにBlockCollectionのコンストラクタもないのでどうにかRichTextBlock.Blocks.Addで追加する必要があります。でもバインドはしたい。ぐぬぬ
コードビハインドって言っても、DataTemplate内のRichTextBlockとかだと面倒ですし…

UserControlで対応しよう

というわけでUserControlを作りましょう。こんなやつ

<UserControl
    x:Class="HogeFuga.BindableRichTextBlockControl"
    ...
    >
    
    <Grid>
        <RichTextBlock Name="MainTextBlock" />
    </Grid>
</UserControl>

UserControlでRichTextBlockを囲ってみました!みたいなやつですね
作り方としては、UserControlを追加してRichTextBlockの行だけコピーして貼り付けると完成です。お手軽

で、問題はこの後ですね
今から失敗例を書いていくのでコピペしないでおきましょう

とりあえずBindingしたいしDependancyPropertyを生やすぞ!って言って生やした結果がこれ

public static readonly DependencyProperty ContentParagraphProperty
    = DependencyProperty.Register("ContentParagraph", typeof(Paragraph), typeof(BindableRichTextBlockControl), PropertyMetadata.Create(new Paragraph(), (d, e) => (d as BindableRichTextBlockControl).ContentParagraph = (Paragraph)e.NewValue));

public Paragraph ContentParagraph
{
    get { return (Paragraph)this.GetValue(ContentParagraphProperty); }
    set
    {
        this.SetValue(ContentParagraphProperty, value);
        MainTextBlock.Blocks.Clear();
        if (value != null)
        {
            try
            {
                MainTextBlock.Blocks.Add(value);
            }
            catch (Exception ex)
            {
                // Debug.WriteLine(ex.ToString());
            }
        }
    }
}

どう見てもクソコードです、本当にありがとうございました
そもそもtry~catchで対応してる時点で先行きが怪しすぎる

バインド周りは適当に書いて実行しましょう。たぶんおそらくページやUserControlに1つだけ設置したRichTextBlockだったら動くはずです(試してない)
ただしDataTemplateでListViewとかに使っていると2つの問題が出てきます
・値が全く違う要素の値になってる場合がある
・"element is already the child of another element" って例外が出てくる

どっちにしても問題がありすぎます。というわけで優秀な開発者が集まっていると噂の devcussion で相談してきました
devcussionについてはこちら→ devcussion | Doorkeeper

まず値が異なる場合について質問した結果プロパティのsetterでやるのをやめようといわれたのでこんなかんじに

public static readonly DependencyProperty ContentParagraphProperty
    = DependencyProperty.Register("ContentParagraph", typeof(Paragraph), typeof(BindableRichTextBlockControl), PropertyMetadata.Create(new Paragraph(), (d, e) => {
        (d as BindableRichTextBlockControl).MainTextBlock.Blocks.Clear();
        (d as BindableRichTextBlockControl).MainTextBlock.Blocks.Add((Paragraph)e.NewValue);
    }));

public Paragraph ContentParagraph
{
    get { return (Paragraph)this.GetValue(ContentParagraphProperty); }
    set
    {
        this.SetValue(ContentParagraphProperty, value);
    }
}

これで値が別のに入れ替わる問題が解決できました。ですがもう片方の例外が残ったのでそっちについて聞いていると「1つのParagraphが瞬間的に2か所に追加されるタイミングが存在している」ということを知ったのでここでParagraphをこねることにしました

ちなみにこんなことをして再生成を回避するのはできませんでした。GUNUNU

public static readonly DependencyProperty ContentParagraphProperty
    = DependencyProperty.Register("ContentParagraph", typeof(Span), typeof(BindableRichTextBlockControl), PropertyMetadata.Create(new Paragraph(), (d, e) => {
        var paragraph = new Paragraph();
        var span = e.NewValue as Span;
        if (span != null)
        {
            paragraph.Inlines.Add(span);
        }
        (d as BindableRichTextBlockControl).MainTextBlock.Blocks.Clear();
        (d as BindableRichTextBlockControl).MainTextBlock.Blocks.Add(paragraph);
    }));

public Span ContentParagraph
{
    get { return (Span)this.GetValue(ContentParagraphProperty); }
    set
    {
        this.SetValue(ContentParagraphProperty, value);
    }
}

Spanなら…Spanならうまいこと回避してくれ…なかったよ… そもそもParagraphで分けるとかそういう問題じゃない感じでDocuments領域のやつらを使いまわすなって感じですね…

最終的なコード

一応わけないとどれコピペしていいかわからない気がした

public string Text
{
    get { return (string)GetValue(TextProperty); }
    set { SetValue(TextProperty, value); }
}

public static readonly DependencyProperty TextProperty =
    DependencyProperty.Register("Text", typeof(string), typeof(BindableRichTextBlockControl), new PropertyMetadata("", (s, e) => 
    {
        // TODO : Create Paragraph from string.
        // var paragraph = CreateParagraph(e.NewValue as string);
        var self = s as BindableRichTextBlockControl;
        self.MainTextBlock.Blocks.Clear();
        self.MainTextBlock.Blocks.Add(paragraph);
    }));

これで行けます。毎回パースするのは遅くねという気もしなくもないので何か手がないかなぁとは思ったり
(Paragraph生成時にstringを解析する処理を私の場合しているのでそこはどうにかしたいというだけですが)


失敗コードが多すぎてよくわからん記事になってしまった。まあPVなんてないし問題ない
そもそもどうしてこのコードがダメなのかみたいなの書いてないし…まあ優秀じゃない開発者だからその辺は優秀な人がきっとやってくれるはず…

なかなか体調がよくならない時期なので平日外に出たくない

追記:まったく関係ないのですが、Office Insiderだとバージョンの部分の文字がOffice Insiderになってるんですけど、人によっては"現在の分岐"になってるようです
Current Branchの意味だと思うんですけど何が違うんですかね。Office Insiderの配信されてるブランチは"First Release for Current Branch"だった気が…?

画像の青で囲んだ部分の話です

この辺で

Office InsiderじゃないバージョンでOfficeを黒くすることはできるか

できません(おしまい)

…っておい! って言われそうなのでちゃんと書きます(長く書かないけど)
16.0.6568.xで黒テーマが追加されましたが16.0.6001.xとかで黒くできないんです?って聞かれたので試してみました

やり方というかその辺は 
artfulplace.hatenablog.com
で予想してください。レジストリいじるしそんなね、懇切丁寧に説明する必要もないよね

実験対象は16.0.6001.1054と16.0.6001.1061です

追記2(2016/02/23):お呼ばれじゃないけどこんな記事を見たので
ayano.hateblo.jp

とりあえず試してみた結果「同じアカウントで黒テーマにすると古いほうはDark Grayになる」っていうのを確認しました。
ついでにこの状態でごにょごにょするとDark Grayのまま維持されることも把握しました(特に白にされることもない)
どうして?って聞かれても知ったこっちゃないですしOffice Insiderのフォーラムへどうぞと思いますが、おそらくバージョンが低い時はBlackからDark Grayにして送り返してるんじゃないでしょうか。
向こうのサーバーか何かの実装とか知りません。 オフラインにしてやってみようぜ? PCたくさん持ってる人に言ってください…


追記(2016/02/18):頭が悪いので間違えてました。昨日の内容は忘れてください。1行目に誤りはないです。

とりあえず比較してみましょう。まずこれがBlackテーマ
f:id:fantasticswallow:20160218092027p:plain

次にこれがDark Grayテーマ
f:id:fantasticswallow:20160218092047p:plain

で、次がごにょって出した1061でのスクリーンショット
f:id:fantasticswallow:20160218092117p:plain

どう見てもDark Grayです本当にありがとうございました
というかなんだよこれ見分けつくわけないだろ


以下元の文

16.0.6001.1054の時点で黒く起動するのは確認できるのですが、すぐに白テーマに戻されてしまいます
16.0.6001.1061についても同様です。起動した後にごにょると値の書き換えは起こらないのですが起動するたびに戻されるので意味なし

一瞬だけ黒を楽しみたい方はぜひやってみましょう。何が起きても一切保証しません


というわけで気になるならさっさとOffice Insiderに登録しましょう
https://products.office.com/ja-jp/office-insider

登録方法は私のところの記事か 
artfulplace.hatenablog.com

@kazuakix さんのところの記事で頑張ってください
blog.kazuakix.jp

PowerPointのConvert to Shapeがとても便利でよい感じですという最近の感想
もうちょっと認識精度上がってほしい気もするけどまあ運用でカバーできる範囲

この辺で

Office UI Themeをレジストリで観察してはいけない

さすがOffice、我々には到底できないことを平然とやってくれる

おっふぃーすのUIテーマを変えるとCustomTaskPaneのホストも変えてくれます。しかしWPFとかでコントロールを作るとコントロールは変わらなくて若干残念な気分になります
単純に言うとBlackテーマにしたらオレオレアドインもBlackテーマにしたいってだけです

しかしUIテーマはVBAなりで拾える気がしません。どうしたらいいのか

それレジストリでできるよ!

TLで嘆いていたら@miru_rhさんが見つけたようです

さすがですね、私みたいな雑魚とは経験値が違う…

とまあさておき、レジストリで見ると見つかるとのことなので探してみます
Office 2016だとこんな感じの位置です
"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Common\UI Theme"
Commonの中にREG_DWORDで入ってます。下のフォルダではないです

2013の場合は15.0にすればOKですね

ですがここで問題が起こります。数字しか入ってないので対応がわかりません
Theme Configuration Group Policy support for Office 2013 – Anything about IT を見ると2013については
0 = White, 1 = Light Grey, 2 = Dark Grey 
となっています。では2016は?ということで検証してみます

結果はこれ
・Office 2016 (ver 16.0.6568.2016)
1 = Colorful
3 = Dark Grey
4 = Black
5 = White

…ぜひとも滅んでほしい感じですね
2がないあたりもよくわかりませんしWhiteが5に飛んでるのもわけわかりません

ですがここで終わりではないわけです。先ほどのはOffice Insider向けにBlackテーマが追加されているバージョンです。ではそれ以前はどうなっていたのでしょうか
結果を見てみましょう
・Office 2016 (ver 16.0.6001.1054)
0 = Colorful
3 = Dark Grey
5 = White

Oh! ミラクルファッキンナンバー!

すごいですね、16.0なら大丈夫とかそんなことはなかったわけですね
そもそもこんな簡単にずれる時点で参照とかしてらんないですね

結論

RenderTargetBitmapを使えばいいんじゃないかな


というわけでただ怒りに任せて書いたみたいな状態です
もし参照したいとか思ってもレジストリだけはやめましょう。ビルド番号まで決められたバージョンでしか使わないというなら止めませんが…

この辺で