最近は動画を使って積極的な情報発信をする方法が数多く見られるようになりました。
このとき、動画ファイルをホームページと同じサーバーに置くと、サーバーの負荷が大きくなるため、動画はYouTubeで公開(限定公開)してそのYouTubeの動画を埋め込むという方法をおススメしています。

今回は、このYouTubeに動画をUPする方法をPDFにまとめましたので、紹介します。
PDFをダウンロードなどして、ご活用ください。
最近は動画を使って積極的な情報発信をする方法が数多く見られるようになりました。
このとき、動画ファイルをホームページと同じサーバーに置くと、サーバーの負荷が大きくなるため、動画はYouTubeで公開(限定公開)してそのYouTubeの動画を埋め込むという方法をおススメしています。

今回は、このYouTubeに動画をUPする方法をPDFにまとめましたので、紹介します。
PDFをダウンロードなどして、ご活用ください。
Windows10 の 覚えておくと便利な ショートカット キー の一覧を紹介します。
キーボードだけで選択や右クリックなどの操作ができるようになり、作業性が上がり、作業時間を短くすることができます。

すべての項目を選択します。
選択している項目・ファイル・フォルダをコピーします。
選択している項目・ファイル・フォルダを切り取ります。
コピーした または 切り取った 項目・ファイル・フォルダを貼り付けます。
操作を元に戻します。
操作をやり直します。
タスクマネージャーを表示します。
ウィンドウ全体のスクリーンショットを取り、クリップボードにコピーします。
選択しているウィンドウのスクリーンショットを取り、クリップボードにコピーします。
※アプリケーションによっては、上記ショートカットでは動作しない場合があります。

投稿記事一覧で、最近投稿した記事に「NEW」マークなどが付くと、読み手の注目を引くとともに分かりやすさも不可されユーザビリティの向上が図れます。
今回は、この「NEW」マークを付与できるようにしたので、その備忘録

NEWマークを付与するコードは以下になります。
<?php
$span = 10; // NEWマークを表示する期間(このコードでは日間)
$now = date_i18n('U'); // 現在の時間
$entry = get_the_time('U'); // 投稿日の時間
$term = date('U',($now - $entry)) / 86400;
if( $span > $term ){
echo '<span class="newMark">NEW</span>';
}
?>
上記コードを「new」マークを、wp-Queryループ内の付与したい箇所に記載すればOK
<?php echo date_i18n( $dateformatstring) ?>
$dateformatstring
(文字列) (必須) 日付を表示する書式
日付と時刻の書式
PHPの「date」関数は、WordPress内で使用すると、UTC(協定世界時)を取得してしまいます。
なので、wordpressでローカライズされた書式で日付を取得するには「date_i18n」を使用します。

アプリなどでサポートのためPCをリモート許可しているケースがあると思います。
そういった場合、やはりセキュリティが心配ですよね。
こういう場合に、自分のPCにリモート接続している人がいるか、いるなら想定の人なのかを調べる方法がありますので、その方法を紹介。

まず、自分のPCのIPアドレスを調べます。(自分のPCのIPアドレスを既知の人は、とばしてOKです。)
・
→ windows システム ツール → コマンドプロンプト


・「IPv4 アドレス」に表示されているのが自分のPCのIPアドレスになります。

・
→ windows システム ツール → コマンドプロンプト

query USER /server:ipアドレス、サーバー名



エクセルで Postgre を取り扱うときに、指定範囲内にデータがあるかどうかを判定するときの備忘録
BOF プロパティは、レコードの位置が Recordset オブジェクトの最初のレコードより前にあるかどうかを示します。
EOF プロパティは、レコードの位置が Recordset オブジェクトの最後のレコードより後にあるかどうかを示します。
例)
Set RS = CreateObject("ADODB.Recordset")
RS.Open SQL, CNN, 1
MsgBox "RS.BOF ⇒ " & RS.BOF
MsgBox "RS.EOF ⇒ " & RS.EOF

BOF、EOFも戻り値により、次のようにレコードとデータベースの関係を取得することができます。
・BOF、EOF のいずれかが True の場合、レコードはデータベース内にありません。
・BOF、EOF 共に True の場合、レコードはデータベース内にありません。
・BOF、EOF 共に False の場合、レコードはデータベース内にあります。

前回、wordpressの管理画面(ダッシュボード)に独自のメニューを追加する方法を説明しましたが、
今回は、その独自メニューのサブメニューの作成方法について説明します。

functions.php に下記を追加します。
add_action('admin_menu', 'add_my_submenu_page');
function add_my_submenu_page()
{
add_submenu_page($parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function, $position);
add_submenu_page($parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function, $position);
}
①add_action(‘admin_menu’, ‘add_my_submenu_page’) で、”admin_menu” に “add_my_submenu_page”(任意の関数名) をフックします。
============
・admin_menu
管理画面メニューの基本構造が配置された後に実行する。
============
プラグイン API/アクションフック一覧
②”add_submenu_page( $parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function, $position)” の内容
add_submenu_page( $parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function, $position);
============
・$parent_slug
親メニューのスラッグ名。前回の作成したカスタムメニューの場合は “custompage” になる。
・$page_title
メニューが選択された際にページのHTMLのタイトルタグに表示されるテキスト
・$menu_title
管理画面のメニュー上での表示名
・$capability
ユーザーがこのメニュー表示する際に必要な権限
ユーザーの種類と権限
・$menu_slug
このメニューを参照するスラッグ名
・$function
メニューページのコンテンツを表示する関数
・$position
このメニューが表示されるメニュー順の位置。このパラメータを省略すると、デフォルトではメニュー構造の一番下に表示されます。
============
管理メニューの追加
具体的には、次の例のように記述します。
add_action('admin_menu', 'add_my_submenu_page');
function add_my_submenu_page() {
add_submenu_page('custompage', '当たりの確立', '当たりの確立', 'edit_posts', 'lot_menu', 'add_menu_page_1');
add_submenu_page('custompage', 'おみくじの確立', 'おみくじの確立', 'edit_posts', 'omikuji_menu', 'add_menu_page_2');
}
function add_menu_page_1()
{
?>
<div class="wrap">
<h2>当たりの確立</h2>
</div>
<?php
}
function add_menu_page_2()
{
?>
<div class="wrap">
<h2>おみくじの確立</h2>
</div>
<?php
}
PCで作業しているとき、作業ウインドウを画面に複数並べて作業するケースが多いと思います。
この作業ウインドウを画面いっぱいに綺麗に並べておくと作業がサクサクと進みますね。この方法を紹介します。

・マウスのポインタと画面の端が重なるあたりでサイズが自動的に修正されます(右or左画面いっぱいに薄いウインドウが表示されます)

・マウスのポインタと画面の端が重なるあたりでサイズが自動的に修正されます(右or左画面いっぱいに薄いウインドウが表示されます)


・表示ウィンドウの幅調整は2画面の境目(センターライン)にカーソルを合わせると「矢印(⇔)」がでてくるので、ドラッグして調整可能です。
・マウスのポインタと画面の端が重なるあたりでサイズが自動的に修正されます(画面1/4に薄いウインドウが表示されます)


この方法で、3分割・4分割で表示することが可能です。

wordpressの管理画面(ダッシュボード)に独自のメニューを追加する方法

functions.php に下記を追加します。
add_action('admin_menu', 'menu_page');
function menu_page()
{
add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position );
}
①add_action(‘admin_menu’, ‘menu_page’) で、”admin_menu” に “menu_page”(任意の関数名) をフックします。
============
・admin_menu
管理画面メニューの基本構造が配置された後に実行する。
============
プラグイン API/アクションフック一覧
②”add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position )” の内容
add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position );
============
・$page_title
メニューが選択された際にページのHTMLのタイトルタグに表示されるテキスト
・$menu_title
管理画面のメニュー上での表示名
・$capability
ユーザーがこのメニュー表示する際に必要な権限
ユーザーの種類と権限
・$menu_slug
このメニューを参照するスラッグ名
・$function
メニューページのコンテンツを表示する関数
・$icon_url
このメニューで使用されるアイコンの URL 。このパラメータはオプション。
Developer Resources: Dashicons
・$position
このメニューが表示されるメニュー順の位置。このパラメータを省略すると、デフォルトではメニュー構造の一番下に表示されます。
============
管理メニューの追加
具体的には、次の例のように記述します。
add_action( 'admin_menu', 'menu_page' );
function menu_page(){
add_menu_page( 'くじ引き確立設定', 'くじ引き確立設定',
'edit_posts', 'custompage', 'banner_options_page', '', 3 );
}
function banner_options_page() {
?>
<div class="wrap">
<h1>くじ引き確立設定</h1>
</div>
<?php
}
管理画面に独自のメニューを作る方法②
【WordPress】管理画面に独自のstyle/scriptを当てる方法

前回、webページに動きを与えるものとして animation, transform を紹介しましたが、
今回は、transform を3Dで操作できる、transform3D を紹介します。
transform3D を利用することで GPUアクセラレーション を使用することになりパフォーマンスが向上します。
GPUアクセラレーションを使用することで、アニメーション処理をソフト(ブラウザ)が行うのではなく、ハード(グラフィックボード)が行うから滑らかな動きが実現します。
下の iframe では見つらいので、こちらからどうぞ
別ページで開きます。

投稿ページの作成・編集画面の「新規投稿を追加」などのラベルを変更するとき、カスタム投稿の場合にうまく変更できなかったので、そのときの対応の備忘録
functions.php に下記を追加します。
add_filter('post_type_labels_post', 'custom_post_labels' );
function custom_post_labels( $labels ) {
$labels->name = 'お知らせ'; // 投稿
$labels->singular_name = 'お知らせ'; // 投稿
$labels->add_new = '新規追加'; // 新規追加
$labels->add_new_item = 'お知らせを追加'; // 新規投稿を追加
$labels->edit_item = '投稿の編集'; // 投稿の編集
$labels->new_item = '新規お知らせ'; // 新規投稿
$labels->view_item = 'お知らせを表示'; // 投稿を表示
$labels->search_items = 'お知らせを検索'; // 投稿を検索
$labels->not_found = 'お知らせが見つかりませんでした。'; // 投稿が見つかりませんでした。
$labels->not_found_in_trash = 'ゴミ箱内にお知らせが見つかりませんでした。'; // ゴミ箱内に投稿が見つかりませんでした。
$labels->parent_item_colon = ''; // (なし)
$labels->all_items = 'お知らせ一覧'; // 投稿一覧
$labels->archives = 'お知らせアーカイブ'; // 投稿アーカイブ
$labels->insert_into_item = 'お知らせに挿入'; // 投稿に挿入
$labels->uploaded_to_this_item = 'このお知らせへのアップロード'; // この投稿へのアップロード
$labels->featured_image = 'アイキャッチ画像'; // アイキャッチ画像
$labels->set_featured_image = 'アイキャッチ画像を設定'; // アイキャッチ画像を設定
$labels->remove_featured_image = 'アイキャッチ画像を削除'; // アイキャッチ画像を削除
$labels->use_featured_image = 'アイキャッチ画像として使用'; // アイキャッチ画像として使用
$labels->filter_items_list = 'お知らせリストの絞り込み'; // 投稿リストの絞り込み
$labels->items_list_navigation = 'お知らせリストナビゲーション'; // 投稿リストナビゲーション
$labels->items_list = 'お知らせリスト'; // 投稿リスト
$labels->menu_name = 'お知らせ'; // 投稿
$labels->name_admin_bar = 'お知らせ'; // 投稿
return $labels;
}
しかし、これではカスタム投稿などを作成したときの投稿ページの作成・編集画面のラベルは変更されません。(デフォルトの画面のみ変更されます)
カスタム投稿などの画面を変更する場合は、次のように「post_type_labels_post」の「post」の箇所を適用したい post_type名に変更すればOK
例)post_type が’joboffer’ の場合
add_filter('post_type_labels_joboffer', 'custom_post_labels' );

ユーザーフォームにボタンなどのコントロールを配置する方法の備忘録です。
(前回紹介した、「【VBA】VBAでエクセル外のオブジェクトを使うとき」に関連した内容になりますので、そちらの投稿も参考にしてください。)
ユーザーフォームにボタンなどのコントロールを配置する場合は、object.Add を使用します。
Dim ctrl As Control Set Set Ctrl = object.Add(class [, Name [, Visible ]] )
class は、配置するコントロールに割り振られた class を指定します。Name には、コントロールに振り分ける名前を指定します。
具体的には、次のように記述します。
Dim ctrl As Control
Set ctrl = CreateObject("Forms.CommandButton.1" , "btn_01")
ProgID(プログラムID)の例を次にあげておきます。
Set ctrl = Controls.Add("BARCODE.BarCodeCtrl.1")
Set ctrl = Controls.Add("RefEdit.Ctrl")
Set ctrl = Controls.Add("Forms.CheckBox.1") 'チェックボックス
Set ctrl = Controls.Add("Forms.ComboBox.1") 'コンボボックス
Set ctrl = Controls.Add("Forms.CommandButton.1") 'コマンドボタン
Set ctrl = Controls.Add("Forms.Image.1") 'イメージ
Set ctrl = Controls.Add("Forms.Label.1") 'ラベル
Set ctrl = Controls.Add("Forms.ListBox.1") 'リストボックス
Set ctrl = Controls.Add("Forms.MultiPage.1") 'マルチページ
Set ctrl = Controls.Add("Forms.OptionButton.1") 'オプションボタン
Set ctrl = Controls.Add("Forms.ScrollBar.1") 'スクロールバー
Set ctrl = Controls.Add("Forms.SpinButton.1") 'スピンボタン
Set ctrl = Controls.Add("Forms.TabStrip.1") 'タブストリップ
Set ctrl = Controls.Add("Forms.TextBox.1") 'テキストボックス
Set ctrl = Controls.Add("Forms.ToggleButton.1") 'トグルボタン
Set ctrl = Controls.Add("MSComctlLib.ListViewCtrl")
Set ctrl = Controls.Add("MSComctlLib.TreeCtrl")
Set ctrl = Controls.Add("InkEd.InkEdit.1")
Set ctrl = Controls.Add("MSInkaut.InkPicture.1")
Set ctrl = Controls.Add("WMPlayer.OCX.7")
ワークシート上に設置する場合は、OLEObjects.Add を使用します。
ActiveWorkbook.Worksheets("Sheet1").OLEObjects.Add ClassType:="Word.Document"

VBAでエクセル外のオブジェクトを使うときには、
参照設定でバインドする方法以外に、実行時にバインディングする方法があります。
その方法についての備忘録
参照設定でバインドする方法だと、エクセルのバージョンなどにより、参照するDictionaryのバージョンが異なります。このため、自分のPCでは参照できるが、他の人のPCでは参照できずエラーが出てしまうケースが発生してしまいます。
一方、実行時にバインディングする方法ではオブジェクトを直接バインドするため、こういったエラーは発生しません。
オブジェクトを作成する場合は、CreateObject を使用します。
Dim obj As Object Set obj = CreateObject(class)
class は、appname.objecttype の形式で指定します。具体的には、次のように記述します。
Dim obj As Object
Set obj = CreateObject("ADODB.Connection")
ProgID(プログラムID)の例を次にあげておきます。
Set obj = CreateObject("BARCODE.BarCodeCtrl.1")
Set obj = CreateObject("Access.Application")
Set obj = CreateObject("ADODB.Connection")
Set obj = CreateObject("ADODB.Recordset")
Set obj = CreateObject("ADODB.Stream")
Set obj = CreateObject("DAO.DBEngine.120")
Set obj = CreateObject("Excel.Application")
Set obj = CreateObject("RefEdit.Ctrl")
Set obj = CreateObject("Outlook.Application")
Set obj = CreateObject("PowerPoint.Application")
Set obj = CreateObject("Word.Application")
Set obj = CreateObject("Word.Document")
Set obj = CreateObject("htmlfile")
Set obj = CreateObject("InternetExplorer.Application")
Set obj = CreateObject("Microsoft.XMLDom")
Set obj = CreateObject("Microsoft.XMLHTTP")
Set obj = CreateObject("MSXML2.DOMDocument")
Set obj = CreateObject("MSXML2.XMLHTTP")
Set obj = CreateObject("Forms.CheckBox.1")
Set obj = CreateObject("Forms.ComboBox.1")
Set obj = CreateObject("Forms.CommandButton.1")
Set obj = CreateObject("Forms.Image.1")
Set obj = CreateObject("Forms.Label.1")
Set obj = CreateObject("Forms.ListBox.1")
Set obj = CreateObject("Forms.MultiPage.1")
Set obj = CreateObject("Forms.OptionButton.1")
Set obj = CreateObject("Forms.ScrollBar.1")
Set obj = CreateObject("Forms.SpinButton.1")
Set obj = CreateObject("Forms.TabStrip.1")
Set obj = CreateObject("Forms.TextBox.1")
Set obj = CreateObject("Forms.ToggleButton.1")
Set obj = CreateObject("MSComctlLib.ListViewCtrl")
Set obj = CreateObject("MSComctlLib.TreeCtrl")
Set obj = CreateObject("Scriptlet.TypeLib")
Set obj = CreateObject("CDO.Message")
Set obj = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
Set obj = CreateObject("InkEd.InkEdit.1")
Set obj = CreateObject("Scripting.Dictionary")
Set obj = CreateObject("Scripting.FileSystemObject")
Set obj = CreateObject("Shell.Application")
Set obj = CreateObject("MSInkaut.InkPicture.1")
Set obj = CreateObject("VBScript.RegExp")
Set obj = CreateObject("Wia.ImageFile")
Set obj = CreateObject("WbemScripting.SWbemLocator")
Set obj = CreateObject("WScript.Shell")
Set obj = CreateObject("WScript.Network")
Set obj = CreateObject("new:{6BF52A52-394A-11d3-B153-00C04F79FAA6}")
