Office 2016 32bit版 or 64bit版?

Office 2016 32bit版 or 64bit版?

ノートPCにOffice 2016 64bit版 をインストールしようとして、以下のメッセージが出てしまいインストールできませんでした。

Office 2010と Office 2016 は制約なく共存できると思っていたので、一瞬どうしようかと悩みました。

OS が64bit版 ならOffice は、64bit版 でも 32bit版 でも動くので結果的には 32bit版 をインストールしました。
もし、OS が 32bit版 なら64bit版をインストールできないので、そもそもこんな事態にはならないのですが、Officeのパッケージ版を買う時に32Bitか64Bitか迷いそうですね。

Office 2016 32bit版 or 64bit版 の違い

ちなみに、32bit版 と64bit版 の違いは、使用できるメモリ空間が異なります。
32Bitは4GBまで。
64Bitは32GBまで。

64BitはOSも64Bit なので、レジスタやメモリ空間が大きく効率よくメモリの処理を行えるので、体感できるかどうかは別として、32Bitよりも64Bitの方が処理が速いと思われます。
ただ、他の動かしているアプリケーションの影響の方が大きいかも知れないので、あくまでも理論上は速いと言えると思います。

その他、32bit版向けに開発されたアプリケーションやアドインは64bitで動作されないことが多く、また逆も多いです。
過去の受け継ぐプログラムによっても選択が変わると思います。

会社であればシステム管理者がそのあたりを管理してくれているので問題ないと思います。
個人であればあまり気にすることもないように思います。個人で4GBを越えるデータを取り扱うこともないと思うし。

Office 2016 32bit版 or 64bit版選ぶなら?

個人的にはなんとなく64Bitを選んでいます。
これからは64Bitが主力だろうし、特殊なCOMプログラムを使う予定もないので、64Bitかな。。。

以上、「Office 2016 32bit版 or 64bit版?」でした。

Search Console – Fatch as Google リダイレクトされました

Search Console – Fatch as Google リダイレクトされました

新しい記事を書いたので、Search Console の Fatch as Google 機能を使って記事をインデックスに登録してもらいました。

その際、「/」スラッシュを余分に付けてしまい、リダイレクトされましたと以下のように表示されました。

ステータスは「!」マークでエラーでも無いし、「インデック登録をリクエストしました」と出ていますのでスルーしようと思ったのですが、ちゃんとインデックスに登録されるのか少し気になって検索してみたところ、以下のような検索結果が出ました。

「リダイレクトされました」というエラーが・・・とありますが、エラーじゃないですよね?
「!」マークで注意を促していますがエラーではないです。
該当の行をクリックして詳細を確認すると、以下のような情報が表示されます。

指定されたURLが正規のURLでなかったために、示された予想される正規のURLに変換しリダイレクト先に指定しなおした感じです。
このリダイレクト先のURLは正しいURLなので再度 Fatch as Google を行う必要が無く助かります。

やはりエラーではないですね。
エラーで無いのにエラーと書いているWebサイトが上位を占めているところがとても気になります。

 

正常にインデックス登録が出来ているの?

念のため正常にインデックス登録が出来ているのか確かめてみました。

ちゃんと登録されていました。
即時で登録されていました。
確認方法なのですが、上のURLをコピーしてGoogle 検索します。
下のように検索します。

インデクスに登録されていると、該当のページが表示されます。
登録されていないと、該当のページは表示されません。

今回は即時で登録されていたため確認しやすかったのですが、遅延して登録されることもあります。

 

リダイレクトされる原因は?

さて、リダイレクトされる原因ですが、先にも書いた通り正規のURLでないからです。
正規と言うのは、URLの書き方で、「/」が多い、www を付けるのが正規なのか付けないのが正規なのか(Search Console の設定)、http かhttps なのか等々が関係してきます。
リダイレクト先のURLが正規のURLなので、それを確認すると解決できると思います。

完全に異なる(予想のできない)URLの場合は、アクセスできませんでしたのエラーになると思います。

 

以上、「Search Console – Fatch as Google リダイレクトされました」の検索結果に「あれ??」と思ったので書きました。

文字 Font の 色を指定する

文字 Font の 色を指定する

文字Fontの色を指定する

文字 Font の色を指定する時は、「color」プロパティを指定します。

color: #ff0000;

色の指定は、bodyに対して行い文書全体に指定もできますし、個別に指定することも出来ます。

文字 Font の色を指定する例

例をいくつか載せておきます。

bodyに対して行い文書全体に指定

全体に赤の文字色を指定します。

<html>
<head>
<style>
body {
    color: #ff0000;
}
</style>
</head>
<body>
これはFontの色指定のテストです。(赤指定)
</body>
</html>

h1タグの文字色をこげ茶色に指定

こげ茶の色を#662323にしました。
色は「原色大辞典」さんで調べると、指定する色値を簡単に取得できます。

<html>
<head>
<style>
body {
    color: #ff0000;
}
h1 {
    color: #662323;
}
</style>
</head>
<body>
<h1>h1タグの色はこげ茶</h1>
これはFontの色指定のテストです。(赤指定)
</body>
</html>

Class指定で文字色を青に指定

pタグにClass blue を指定し、blueクラスに青色を指定しています。

<html>
<head>
<style>
body {
    color: #ff0000;
}
h1 {
    color: #662323;
}
.blue {
    color: #0000ff;
}
</style>
</head>
<body>
<h1>h1タグの色はこげ茶</h1>
これはFontの色指定のテストです。(赤指定)
<p class='blue'>これはClassでFontの色指定のテストです。(青指定)</p>
</body>
</html>

以上、簡単な「文字 Font の 色を指定する」方法の紹介でした。

Windows 10 アップグレード 無償アップグレードの期間切れ後の状況

Windows 10 アップグレード 無償

既にWindows 7 や Windows 8.1 からの Windows 10 への無償アップグレードの期間はとっくに過ぎていますが、2018/02/01時点でまだ無償でアップグレードできました。

いろいろな条件があるのだと思いますが、まだ無償アップグレードを実施していない方も居ると思いますので、経緯だけ報告します。
ちなみに、公式には以下の通りです。
Windows 10 無償アップグレード キャンペーンは、2016年7月29日まで。
支援技術をご利用の方向け Windows 10 アップグレードは、2017年12月31日まで。

また、一度アップグレードして、またダウングレードした場合は、上の期間にかかわらず無償でアップグレードできるそうです。

今回は、一度も Windows 10 にアップグレードしていないPCで無償アップグレードを試みました。

アップグレードしたPCについて

今回 Windows 10 にアップグレードしたPCですが、ほぼ放置状態のDELLのノートPCです。
OSは Windows XP が入っており、CPU も celeron M でメモリも 1.5G といたってショボショボのPCです。
しかし、そんなショボショボのノートPCに頼らざるを得ない状況になり、急遽「Windows 10」にしよう!となった次第です。

ちなみに、無償アップグレードの期間が過ぎているのを知っていたので、 Windows 10 を別途購入して載せようと思っていたのですが、とりあえずやってみようと思いチャレンジしてみました。

インストール手順

まず、手持ちの Windows 7 starter にアップグレードしました。
クリーンインストールではなく、上書きインストールです。
サービスパック1まで当たっていました。

※ここで Windows 7 starter のライセンス認証を行いました。

HDDの空き容量に少し不安が有ったので、Windows 7 の Windows フォルダーやProgram files フォルダーを地道に削除しました。

次に「Windows 10 ダウンロード」へ行き、「ツールを今すぐダウンロード」をクリックしてツールをダウンロードしました。
その後、ツールを起動しそのまま Windows 10 のインストールを行いました。
その後は放置状態で数時間後に確認したら Windows 10 home が正常にインストールされており、ライセンス認証もされたままでした。

無償アップグレードはいつまで出来るの?

これは無償アップグレードいつ出来なくなっても仕方のないことなので、出来るときにやっておくのが良いと思います。
が、Windows 7 のサポート期間のうちはそのまま使いたいなどの要望もありますし。。。
一度アップグレードして戻すにしても、手間やリスクもあるわけで。。。

公式発表していてもまだできるってことは、簡単に検知できるような仕組みになっていなくて、疑わしきはOKって判断でライセンス認証を通しているのかもしれませんね。
とりあえず、上のインストール手順で無償アップグレードが出来ました。

まだ、Windows 10 の無償アップグレードしていないPCを持っている人は、気が向いたときに試してみてください。
以上、「Windows 10 アップグレード 無償」で出来た報告まで。

知っていると便利な Windows 10 仮想デスクトップ

Windows 10 仮想デスクトップ

Windows 10では、「仮想デスクトップ」という機能が追加されています。
仮想デスクトップは、複数の画面を持つことで、作業領域を広げる機能です。
1つの大きな仮想画面よりも、切り替えられる複数の画面の方が使い勝手が良いと思われます。

それぞれの仮想画面は作業ごとに別のアプリを起動しておき、会社独自のアプリケーション作業、WordやExcel作業、Web検索をしながらの資料や情報の整理、メールやスカイプなどの連絡、のように用途をわけておけば、ひとつずつアプリを開いたり閉じたりすることなく、作業に応じて手早く切り替えられます。
特に、画面が小さなノートPCで役立つオススメの機能です。

仮想デスクトップの作り方

仮想デスクトップは、タスクバーの「タスク ビュー」から起動します。
1)タスク ビューをクリックします。
タスク ビューの位置は下の通りです。

タスクバーの「タスク ビュー」

タスクバーの「タスク ビュー」

2)クリックすると、画面の右下に「+新しいデスクトップ」が表示されます。

画面の右下に「+新しいデスクトップ」が表示

画面の右下に「+新しいデスクトップ」が表示

3)「+新しいデスクトップ」をクリックすると、新しい仮想デスクトップが作成されます。

新しい仮想デスクトップが作成されます

新しい仮想デスクトップが作成されます

仮想デスクトップの切り替え方

仮想デスクトップを消す時も、タスクバーの「タスク ビュー」から行います。

1)タスク ビューをクリックします。

2)仮想デスクトップの一覧が表示されます。
表示したい仮想デスクトップの上にマウスカーソルを乗せクリックします。
これで切り替えられています。

仮想デスクトップの終わり方

仮想デスクトップを消す時も、タスクバーの「タスク ビュー」から行います。

1)タスク ビューをクリックします。

2)仮想デスクトップの一覧が表示されます。
削除したい仮想デスクトップの上にマウスカーソルを乗せると、乗せた仮想デスクトップの右上に「X」が表示されます。
更に表示された「X」の上にマウスカーソルを乗せると、「X」が赤表示されます。

「X」の上にマウスカーソルを乗せると、「X」が赤表示されます

「X」の上にマウスカーソルを乗せると、「X」が赤表示されます

3)赤くなっている「X」をクリックでその仮想デスクトップを消すことができます。

便利なショートカットキー

仮想デスクトップを素早く使うならショートカットキーがお勧めです。
[Windows]キー+[Ctrl]キー+[D]で新しいデスクトップの作成できます。
[Windows]キー+[Ctrl]キー+[矢印 →(←)]で、右(左)の仮想デスクトップへ素早く移動できます。
[Windows]キー+[Ctrl]+[F4]キーで、表示中の仮想デスクトップを閉じる消すことができます。
 ただし、仮想でないデスクトップを消そうとすると、残った仮想デスクトップが自動で消されてしまいます。
 消した仮想デスクトップ上にアプリが立ち上がっていると、仮想でないデスクトップに移されています。
[Windows]キー+[Tabキー]でタスクビューの表示ができます。

以上、「Windows 10 仮想デスクトップ」の簡単な使い方まで。

SQL Server INTERSECT

INTERSECT

INTERSECT は、ユニオンクエリと呼ばれ、1つのクエリ結果と別のクリエ結果の同じ行のみの結果を返します。
ユニオンクエリには、UNION, EXCEPT 句もあります。

ちなみに、SQL Server には、INTERSECT ALL はありません。

INTERSECT の使い方

1つの目のクエリ結果と、次のクリエ結果を比較し、同じ行(レコード)のみを結果として返します。

以下に簡単な例を書きます。
tble1の結果からtbl2と同じ結果(行)があるもののみ結果を返しています。

declare @tbl1 table(a_cd char(9), b_kbn char(1), c_kbn int)
insert into @tbl1 (a_cd,b_kbn,c_kbn) values ('000000001','1',0)
insert into @tbl1 (a_cd,b_kbn,c_kbn) values ('000000010','1',1)
insert into @tbl1 (a_cd,b_kbn,c_kbn) values ('000000020','2',1)
insert into @tbl1 (a_cd,b_kbn,c_kbn) values ('000000030','3',1)

declare @tbl2 table(a_cd char(9), b_kbn char(1), c_kbn int)
insert into @tbl2 (a_cd,b_kbn,c_kbn) values ('000000001','1',0)
insert into @tbl2 (a_cd,b_kbn,c_kbn) values ('000000010','1',1)
insert into @tbl2 (a_cd,b_kbn,c_kbn) values ('000000020','2',1)
insert into @tbl2 (a_cd,b_kbn,c_kbn) values ('000000030','3',2)

select * from @tbl1
INTERSECT
select * from @tbl2

left join 句を使用して同じこともできますが、INTERSECT 句を使った方がシンプルですね。

select t1.* from @tbl1 t1
left join @tbl2 t2
on t1.a_cd = t2.a_cd
and t1.b_kbn = t2.b_kbn
and t1.c_kbn = t2.c_kbn
where t2.a_cd is not null

以上、INTERSECT の簡単な使用方法でした。

SQL Server EXCEPT

EXCEPT

EXCEPT は、ユニオンクエリと呼ばれ、1つのクエリ結果から別のクリエ結果を差し引いて重複を取り除き結果を返します。
ユニオンクエリには、UNION, INTERSECT 句もあります。

ちなみに、SQL Server には、EXCEPT ALL はありません。

EXCEPT の使い方

1つの目のクエリ結果から、次のクリエ結果を差し引いて、重複を取り除き、結果を返します。

以下に簡単な例を書きます。
tble1の結果からtbl2と同じ結果(行)があるものを取り除き結果を返しています。

declare @tbl1 table(a_cd char(9), b_kbn char(1), c_kbn int)
insert into @tbl1 (a_cd,b_kbn,c_kbn) values ('000000001','1',0)
insert into @tbl1 (a_cd,b_kbn,c_kbn) values ('000000010','1',1)
insert into @tbl1 (a_cd,b_kbn,c_kbn) values ('000000020','2',1)
insert into @tbl1 (a_cd,b_kbn,c_kbn) values ('000000030','3',1)

declare @tbl2 table(a_cd char(9), b_kbn char(1), c_kbn int)
insert into @tbl2 (a_cd,b_kbn,c_kbn) values ('000000001','1',0)
insert into @tbl2 (a_cd,b_kbn,c_kbn) values ('000000010','1',1)
insert into @tbl2 (a_cd,b_kbn,c_kbn) values ('000000020','2',1)
insert into @tbl2 (a_cd,b_kbn,c_kbn) values ('000000030','3',2)

select * from @tbl1
except
select * from @tbl2

left join 句を使用して同じこともできますが、EXCEPT 句を使った方がシンプルですね。

select t1.* from @tbl1 t1
left join @tbl2 t2
on t1.a_cd = t2.a_cd
and t1.b_kbn = t2.b_kbn
and t1.c_kbn = t2.c_kbn
where t2.a_cd is null

以上、EXCEPT の簡単な使用方法でした。

SQL Server UNION と UNION ALL

UNION と UNION ALL

UNION と UNION ALL は、ユニオンクエリと呼ばれ、2つ以上のクエリ結果を結合して返します。
ユニオンクエリには、EXCEPT, INTERSECT 句もあります。

UNION と UNION ALL の違い

2つ以上のクエリ結果を結合して返します。
違いは、すべての結果を返すか、重複した行(レコード)は一行にして返すかの違いです。
使用するデータによっては、重複データを取り除きたい場合もあるし、すべてのレコードが必要な場合もあるので、選択して使用します。

以下に簡単な例を書きます。

declare @tbl1 table(a_cd char(9), b_kbn char(1), c_kbn int)
insert into @tbl1 (a_cd,b_kbn,c_kbn) values ('000000001','1',0)
insert into @tbl1 (a_cd,b_kbn,c_kbn) values ('000000010','1',1)
insert into @tbl1 (a_cd,b_kbn,c_kbn) values ('000000020','2',1)
insert into @tbl1 (a_cd,b_kbn,c_kbn) values ('000000030','2',1)

declare @tbl2 table(a_cd char(9), b_kbn char(1), c_kbn int)
insert into @tbl2 (a_cd,b_kbn,c_kbn) values ('000000001','1',0)
insert into @tbl2 (a_cd,b_kbn,c_kbn) values ('000000010','1',1)
insert into @tbl2 (a_cd,b_kbn,c_kbn) values ('000000020','2',1)
insert into @tbl2 (a_cd,b_kbn,c_kbn) values ('000000030','2',1)

select * from @tbl1
union
select * from @tbl2
order by a_cd

select * from @tbl1
union all
select * from @tbl2
order by a_cd

UNION , UNION ALL はクエリを結合するので、ネストなどもできます。
下の例は、tbl1とtbl2を先にUNION結合し、後からtbl3をUNION ALL結合しています。
()で順序をつけることができます。

declare @tbl1 table(a_cd char(9), b_kbn char(1), c_kbn int)
insert into @tbl1 (a_cd,b_kbn,c_kbn) values ('000000001','1',0)
insert into @tbl1 (a_cd,b_kbn,c_kbn) values ('000000010','1',1)
insert into @tbl1 (a_cd,b_kbn,c_kbn) values ('000000020','2',1)
insert into @tbl1 (a_cd,b_kbn,c_kbn) values ('000000030','2',1)

declare @tbl2 table(a_cd char(9), b_kbn char(1), c_kbn int)
insert into @tbl2 (a_cd,b_kbn,c_kbn) values ('000000001','1',0)
insert into @tbl2 (a_cd,b_kbn,c_kbn) values ('000000010','1',1)
insert into @tbl2 (a_cd,b_kbn,c_kbn) values ('000000020','2',1)
insert into @tbl2 (a_cd,b_kbn,c_kbn) values ('000000030','2',1)

declare @tbl3 table(a_cd char(9), b_kbn char(1), c_kbn int)
insert into @tbl3 (a_cd,b_kbn,c_kbn) values ('000000001','1',0)
insert into @tbl3 (a_cd,b_kbn,c_kbn) values ('000000010','1',1)
insert into @tbl3 (a_cd,b_kbn,c_kbn) values ('000000020','2',2)
insert into @tbl3 (a_cd,b_kbn,c_kbn) values ('000000030','2',2)

select * from @tbl3
union all
(
select * from @tbl1
union
select * from @tbl2
)
order by a_cd

以上、UNION と UNION ALL の簡単な使用方法でした。

SQL Server NULL

NULL

SQL文を書くとき、データがnullを取りうるか否かを常に意識する必要があります。
nullを検索するためには、明示的に is null や is not null を使用する必要があります。

また、SQL Server で NULL 値を別の値にチェック後に変換するには、ISNULL 関数を使用します。

NULL を扱う

null 値を許可している場合、かつ、その値が検索対象になっている場合は先の is null や is not null を使用します。
簡単な例を下に示しておきます。

declare @tbl1 table(a_cd char(9), b_kbn char(1), c_kbn int)
insert into @tbl1 (a_cd,b_kbn,c_kbn) values ('000000001','1',0)
insert into @tbl1 (a_cd,b_kbn,c_kbn) values ('000000010','1',1)
insert into @tbl1 (a_cd,b_kbn,c_kbn) values ('000000020','2',1)
insert into @tbl1 (a_cd,b_kbn,c_kbn) values ('000000030','2',1)
insert into @tbl1 (a_cd,b_kbn,c_kbn) values ('000000040','3',null)
 
select * from @tbl1

select * from @tbl1 where c_kbn = 0 or c_kbn <> 0 

select * from @tbl1 where c_kbn is null

select * from @tbl1 where c_kbn is not null

select a_cd, b_kbn, isnull(c_kbn, -1) from @tbl1

select a_cd, b_kbn,
    case
    when c_kbn is not null then c_kbn
    when c_kbn is null then '-1'
	end
from @tbl1

更にANSI/ISOのCOALESCE関数を使うこともできます。

declare @tbl1 table(a_cd char(9), b_kbn char(1), c_kbn int)
insert into @tbl1 (a_cd,b_kbn,c_kbn) values ('000000001','1',0)
insert into @tbl1 (a_cd,b_kbn,c_kbn) values ('000000010','1',1)
insert into @tbl1 (a_cd,b_kbn,c_kbn) values ('000000020','2',1)
insert into @tbl1 (a_cd,b_kbn,c_kbn) values ('000000030','2',1)
insert into @tbl1 (a_cd,b_kbn,c_kbn) values ('000000040','3',null)

select a_cd, b_kbn, coalesce(c_kbn, '-1') from @tbl1

この他、SQL Server では、ANSI_NULLS の設定で = , <> を使用できるようになる。

declare @tbl1 table(a_cd char(9), b_kbn char(1), c_kbn int)
insert into @tbl1 (a_cd,b_kbn,c_kbn) values ('000000001','1',0)
insert into @tbl1 (a_cd,b_kbn,c_kbn) values ('000000010','1',1)
insert into @tbl1 (a_cd,b_kbn,c_kbn) values ('000000020','2',1)
insert into @tbl1 (a_cd,b_kbn,c_kbn) values ('000000030','2',1)
insert into @tbl1 (a_cd,b_kbn,c_kbn) values ('000000040','3',null)

set ansi_nulls on

select * from @tbl1 where c_kbn = null
select * from @tbl1 where c_kbn <> null

set ansi_nulls off

select * from @tbl1 where c_kbn = null
select * from @tbl1 where c_kbn <> null

ISNULLでNullを置換する

ISNULLでNULLを他の文字に置き換える方法もありますので紹介しておきます。

構文:ISNULL(チェック対象, 変換したい文字列)
ISNULLの第1パラメータの値がNULLであれば、第2パラメータの文字列を返します(変換します)。
NULLでなければ、第1パラメータの値をそのまま返します。

declare @val integer

set @val = null
select isnull(@val, 1)

set @val = 0
select isnull(@val, 1)

以上、null の扱いかたでした。

WindowsのDNSキャッシュをクリアする方法

WindowsのDNSキャッシュをクリアする方法

レンタルサーバーを変えていて、DNSの変更がきちんとされたかを調べたいときにDNSキャッシュが邪魔な時があります。
DNSキャッシュの削除方法を備忘録しておきます。

WindowsのDNSキャッシュをクリア・削除

コマンド一発です。
コマンドプロンプトで実行してください。

ipconfig /flushdns

DNSキャッシュがクリア・削除されたか確認

これもコマンド一発です。
コマンドプロンプトで実行してください。

ipconfig /displaydns

だらだらリストが出てこなければクリアされています。
クリアする前にipconfig /displaydnsを実施して状態を確認するとわかりやすいかも。

以上、WindowsのDNSキャッシュをクリアする方法でした。