Adsenseコード

2017-11-30

Sublime Text 初心者向け逆引き操作集

文字を一気に置換したい


以下のショートカットキーを押して、置換のコンソールを表示させます。

Opt + Cmd + F

※ Windows 系の方は、以下のように置き換えてください。
Opt → Alt
Cmd → Ctrl



以下がコンソールです


Find What: この部分に置換対象のキーワードを記入します。

Find を数回押して、予想外の部分がキーワードに入っていないかを確認します。

Replace With: この部分に置換後のキーワードを記入します。

Replace を数回押すことで、一つ一つ確認しながら置換を行うことができます。

Replace All を押すことで、一気に置換することができます。
この Replace All を使ったときは、自分が予想していない箇所も置換されてしまうこともあるので、Find で置換対象を全て確認してから利用したほうがいいでしょう。



左側のオプションボタンについて

左から
正規表現として解釈する
大文字、小文字を区別する
・・・(気力があったら追記します)
となっています。

時々 Sublime Text では、大文字小文字を区別するオプションをオンにしたまま検索して、検索ワードが引っかからずに悩むことがある(私だけ・・・?)ので、このオプションは時々確認するようにしましょう。



手軽に新しいタブを開きたい


Cmd + N
を押してください。



画面分割をして、2つのテキストを1画面内に表示したい

Sublime Text のメニューで以下の順に開くと、例えば縦に2列で画面を分割をすることができます。

View > Layout > Columns: 2




(気力があれば追記していきます・・・。)





【Apex】レコードやレコードIdからオブジェクトのAPI名を取得する方法


レコードからオブジェクト名を取得する


Apex開発において、あるレコードのオブジェクトの
API名を取得したいときの方法です。

sObject 型のレコードで getSObjectType() のメソッドを
呼んであげると取得できます。

また、この getSObjectType メソッドの戻り値は
Schema 名前空間の sObjectType クラスですので、

String として処理するには、
String.valueOf( sObjectType クラス )
を利用する必要があります。

Account acc = new account(name = 'testAccount', description = 'testDescription');
String objApi = String.valueOf( acc.getSObjectType() );
System.debug( '###: ' + objApi );
System.assertEquals( 'Account', objApi );
Schema.sObjectType expected = Schema.Account.getSObjectType();
System.assertEquals( objApi, expected );

※ sObject.getSObjectType().getDescribe().getName();
でもできます。むしろ、こちらの方が正しいですね。
この場合、戻り値はStringになります。



参考


sObject クラス
SObjectType クラス



レコードIdからオブジェクトのAPI名とプレフィックス名を取得する


さらに、レコードのSalesforceIdのみをキーにしてオブジェクトのAPI名と KeyPrefix を取得する方法です。

まず、必要な知識です。
オブジェクト名と KeyPrefix の取得方法を以下に示します。

Account acc = new account(name = 'testAcme', description = 'testAcme Account');
insert acc;

Schema.SObjectType accSot = acc.getSObjectType();
DescribeSObjectResult dsor = accSot.getDescribe();
String objName = dsor.getName(); // オブジェクト名
String prefix = dsor.getKeyPrefix(); // プレフィックスコード
System.assertEquals( 'Account', objName );
System.assertEquals( '001', prefix );



また、組織内の全てのオブジェクトの SObjectType の取得方法は以下になります。

Map<String, Schema.SObjectType> globalDescribe = Schema.getGlobalDescribe();



あとはレコードIdの先頭3文字をキーにして、
組織内のオブジェクトのプレフィックスと
一致するものを探せば、
その名前がレコードのオブジェクト名となります。

// globalDescribe
public Map<String, Schema.SObjectType> globalDescribe {
get{
if(globalDescribe == null){
globalDescribe = Schema.getGlobalDescribe();
}
return globalDescribe;
}
set;
}
// レコードIdから、オブジェクト名を取得する
public String getObjectNameByRelationFiledId(String objectId){
String objName;
String headFiled = objectId.substring(0, 3); //先頭から3文字
for (Schema.SObjectType globalSOType : globalDescribe.values()) {

String prefix = globalSOType.getDescribe().getKeyPrefix();
if( headFiled == prefix){
objName = globalSOType.getDescribe().getName();
break;
}
}
return objName;
}



参考

【salesforce】IDからオブジェクト名を取得するゼイ。
SObjectType クラス
DescribeSObjectResult クラス



別解 レコードIdからオブジェクトのAPI名を取得する


実はIdクラスにも SObjectType を取得するメソッドが
用意されているので、API名とプレフィックス名の取得は
以下の方法でも可能です。

// レコードIdから、オブジェクト名を取得する
public String getObjectNameByRelationFiledId( Id id ){
return id.getSObjectType().getDescribe().getName();
}



参考
Id クラス



2017-11-28

Salesforce 要件と実現方法集

お客様コードというカスタム項目に値が入ったら、レコードを閲覧専用にしたい


編集用のレコードタイプと、閲覧専用のレコードタイプを用意する
ワークフロールールの項目自動更新のアクションで、以下を条件にレコードタイプを「閲覧専用」に変更する設定をする

!IsBlank( CustomerCD__c )



システム管理者プロファイルでは、ページレイアウトで項目を参照のみに設定しても、項目は編集できる状態になります。




順次追記していきたいと思います。




2017-11-27

相続税の節税!生前贈や贈与税の基本をまとめる

年間110万円の基礎控除がある贈与税。

110万円を超えたらどうなるのか。
夫婦間でも贈与になる?

様々な疑問があると思います。
贈与税が関係してくる基本的なケースについてまとめました。


■贈与は誰の名義にしておくかがポイント

贈与税を気をつけなければならないケースとしては
車や家など、高額商品を買ったタイミングです。

日常的な生活費のやり取りなど、家や車の金額と比べて小さい金額のやり取りは、
通常ではあまり問題視されることはありません。

税務調査官の立場からすると、そのような小さな金額の生活費を裏付けを持って指摘することは、やろうと思えばできるかもしれません。
しかし、労力の割に指摘できる税額が少ない。

家や車など、高額商品の購入は税務署はすべてチェックしています 。
家は不動産登記、車は車検証の取得をするので調べるのはかんたんですよね。

家や車、一つの取引が大きいものに対してピンポイントに指摘するほうが、
指摘する側としても都合がいいと言えるでしょう。


贈与税でポイントになるのは名義です。

例えば夫婦のうち妻の貯金が200万円。
貯金を減らさず無借金で妻名義の区分マンションを
取得したらどうでしょうか。

この事実からは、夫が区分マンションの購入資金を妻に渡して、
妻が区分マンションを購入したことが予想されます。

ここには夫→妻への購入資金の贈与が成立しているとみなせますので
贈与税の対象になる可能性があります。


http://asset-campus-oag.com/gift-tax-couple-552



■結婚して20年以上の場合の特例



配偶者控除(おしどり贈与)



■不動産に関する肩代わりの返済で、贈与税を回避する



不動産に関する返済は、不動産登記者を複数にすることで、贈与税の基礎控除を増やすことができる
http://asset-campus-oag.com/mortgage-gift-tax-821



■定期贈与について



これは定期贈与とよばれ、毎年同時期に同額の資金援助があると、その資金援助開始の時点においてまとまった資金の贈与の意思があったものとみなされ、その総額について一時に贈与税が課される可能性があるのです。

この定期贈与認定を回避するには、毎年、基礎控除を少し上回る額の贈与を行い、その都度贈与税申告書を提出するのがおすすめです。毎年申告することにより、まとまった資金の贈与ではなく、必要な都度、毎年110万円の贈与を行っているということを税務署に対して示すことができます。例えば、111万円の贈与税の申告書を提出すれば1,000円の納税額ですみます。






WiMAXルーターでmineoを利用する

■利用条件


一部のWiMAXルーター(au 4G LTE対応端末)は、mineoのAプランのSIMカードを利用してデータ通信をすることができます。
ポイントは、WiMAXルーターがau 4G LTEに対応していることと、mineoのSIMカードがau回線を利用するAプランであることです。




■対応するWiMAXルーター


au 4G LTEに対応している端末になります。なので以下になります。

au 4G LTEに対応端末
Bluetoothテザリング5GHzスマホからリモート操作USBバッテリー容量充電時間(分)
WX04Type-C3,200mAh160
W04Type-C2,750mAh120
W03×Micro3,000mAh130
W02×Micro2,300mAh150
W01×Micro2,300mAh150
HWD15×××Micro3,000mAh170
HWD14×××Micro3,000mAh170

※ その他補足
WX04
 nano SIM、急速充電、バッテリー交換可能、国産
W04
 Micro SIM、急速充電



以下はau 4G LTEに対応していない端末になりますので、mineoのSIMカードをさしても利用することはできません。

au 4G LTEに未対応端末
WX04
WX03
WX02
WX01
NAD11



■WiMAXルーターを用意する上での注意点


au 4G LTEに対応している端末で、最新のものとそうでないものと特に何が違うかというと、SIMカードの大きさの規格が違います。
WX04以外は Micro SIM なので、mineo でSIMカードを選択するときには大きさに注意しましょう。



調べていた限りでは、WX04 一択だと思っていましたが、初期ロットは品質に問題があるようです。
もう少し落ち着いてから買ったほうがいいかもしれませんね。
http://review.kakaku.com/review/K0001008733/#tab



参考
http://kakuyasusimcard.com/mineo-wimax/
http://www.uqwimax.jp/products/wimax/
http://xn--wimax-3m4dtmif.seesaa.net/article/WX04.html
http://www.kddi.com/business/mobile/data/hwd15/spec/





2017-11-26

CSSの設計手法




■代表的な設計手法



OOCSS
 オブジェクト指向のような設計手法
 Bootstrapのように各UIに統一した名前をあらかじめ決めておかないと破綻しやすい。

BEM
 「.Block__Element--Modifier」という命名ルールに従いクラス名を決めます。

SMACCS
 スタイルをBase, Layout, Module, State, Theme の 5つに分けて考えます。

MCSS
 CSSモジュールをBase、Project、Cosmeticの3つのレイヤーに分けて考えます。

FLOCSS
 CSS設計のいいとこ取り

CSS in JS
 CSSをJavaScriptのオブジェクトにして扱う

Scoped CSS
 Firefox以外ではサポートされていない



参考
http://uxmilk.jp/43386






SassとSASSとSCSSの違いについて




■Sass、SASS、SCSSの違い



SASSとSCSSはSassを書くための書き方です。
SassがCSSを簡単に書くための手段、といったような感じです。



参考
http://uxmilk.jp/38084



■SASSとSCSSどっちで書いたほうがいいか



SCSSはSASSの後に登場した記法ですが、こちらの方がCSSとの互換性があり、最近ではこちらがメジャーなようです。
一方、SASSはSassのもともとの記法であり、Rubyライクな書き方ができるようです。



参考
https://ferret-plus.com/6233
https://qiita.com/m0nch1/items/b01c966dd2273e3f6abe







2017-11-24

Excel でこんな便利な方法があったんだ!まとめ

■シート名の指定をセルの参照値を使う


INDIRECT 関数で挟んであげると、引数の一部にセルの参照値を使うことができる

例 =INDIRECT(A2&"!B14")

参考
https://www.nishi2002.com/4818.html



■クイックアクセスツールバー



http://balance-blog.com/Excel-Shortcut-Key



■期限が来たら閲覧できないようにする


■期限が来たらデータを削除する

http://www.geocities.jp/ttak_ask/office_docu/ef5.html




ここを見たら何がわかる?Googleアナリティクスの見方

とりあえず、どれくらいの人がサイトに訪問しているかを確認する


左側でホームを選択します。
下方にスクロールすると、「アクティブ ユーザーの動向は?」のグラフがあります。















グラフ下部の対象期間を「過去30日」に設定します。

このグラフは、それぞれの日時点の日別、週別、月別の閲覧ユーザー数の推移を表しています。



右下のアクティブユーザーレポートを選択すると、アクティブユーザー数の分析ページに移動します。

このページでは、アクティブユーザー数の推移をより詳細に分析することができます。

右上の対象期間を設定することで、X軸の位置を自由に設定することができます。




ユーザ数の推移を確認したい


昨日や先週に比べて、サイトを訪問するユーザ数がどう推移しているかを確認する方法です。

上記のアクティブユーザレポートを選択するか、左側のメニューで、以下のページを開きます。

レポート > ユーザ > アクティブユーザ

右上の日付の期間を「過去30日間」に設定します。
「1日のアクティブユーザ数」と
「7日間のアクティブユーザ数」のチェックをオンにします。















以上で、その日のユーザ数と7日間のユーザ数の推移を確認することができます。




どのページがどれだけ閲覧されているかを確認したい


左側のメニューから

レポート > 行動 > 概要

と選択すると、行動のサマリーが表示されます。

上のグラフでは、上記の「ユーザ数の推移を確認したい」で紹介したグラフで、「1日のアクティブユーザー数」を選択したような内容が表示されています。


下部の左側にある「サイト コンテンツ」で「ページ タイトル」を選択してください。

右側に、ページタイトルとページビュー数が表示されます。


ここから、どの記事でどれだけ閲覧されているかを確認することができます。

しかし相変わらず閲覧数が少ないですね(笑




訪れたユーザ数、セッション数を確認する


本文
ユーザ > 概要
から「ユーザサマリー」を開きます。

右上の対象期間を設定します。30日にしてみましょう。

その下の最小単位を設定します「日」を選択してみます。

左側の指標は「セッション」を選択します。



以上の設定で、過去30日間でどれだけのWebサイトの閲覧があったかを把握できます。



ユーザサマリーの各項目について



ユーザサマリーの各項目について簡単に説明してみます。

セッション
ユーザがブラウザを立ち上げてから閉じるまでで閲覧した場合は、1カウントとして数える閲覧数です。



ユーザ
ブラウザを何度立ち上げて閲覧しても、同じユーザの閲覧であればカウントを1とする閲覧数です。



ページビュー数
ページを読み込んだ回数です。再読込を連打すると、連打した数だけカウントされてしまいます。



ページ/セッション
1回ブラウザを立ち上げた人が、このサイトを何回読み込んだかを表す倍率です。



平均セッション時間
サイト内に滞在した平均時間です。



直帰率
最初に開いたページでサイトの閲覧が終了したPVの割合です。



新規セッション率
全てのユーザの中で、期間内に全くのご新規さんの割合を示しています。

参考
新規セッション率の定義とは?平均や期間毎の数値把握方法




気力があったらまた追記していきます・・・。





Blogger から WordPress へ記事を移植してみる




Blogger で書いた記事を WordPress に移植をするときに、どのようなコピペの仕方をすれば、再現性を高く移植ができるのかを検証してみました。



■結果



Blogger から WordPress へコピペする方法として、以下の方法で検証しました。

Bloggerでは「作成」タブから作成した記事の場合

Blogger WordPress
1HTMLテキスト
2作成ビジュアル
3作成ビジュアル(プレーンテキストとして貼付け)
この方法では、1が最も再現性が高くなりました。



Bloggeerでは、「HTML」タブで本文をなるべく pre タグの中に書くようにした場合

Blogger WordPress
1HTMLテキスト
2作成ビジュアル
3作成ビジュアル(プレーンテキストとして貼付け)
この方法では、2が最も再現性が高くなりました。



通常のHTML分となるべく pre タグを用いて記述したものでは、pre タグを用いた文のほうが再現性は高くなりました。

ただ、pre タグを用いた文章は、クローラーの解析に不利な可能性があり、SEOとしては良くない可能性があるので、そのことは頭に入れておく必要があります。










MAMPでPythonを動かす




■Apacheの設定



以下の場所にあるファイルを編集します。

/Applications/MAMP/conf/apache/httpd.conf



ファイル内を「AddHandler」で検索し、以下の該当部分に「.py」を加え、Pythonファイルを対象にします。

#AddHandler cgi-script .cgi
AddHandler cgi-script .cgi .py



■test.py の作成



1行目に記述する python のインタプリタの場所を調べます。
ターミナルで以下を入力すると出てきます。

$ which python3
/Library/Frameworks/Python.framework/Versions/3.6/bin/python3



上記を一行目に記載し、test.py ファイルを以下のように作成します。

保存場所
/Applications/MAMP/htdocs/host8004/Python.py



#!/Library/Frameworks/Python.framework/Versions/3.6/bin/python3
import sys
import io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')

print("Content-Type: text/html; charset=utf-8")
print("")
print("""
    <html>
    <head>
    <meta charset="utf-8">
    </head>
    <body>
    <h1>It works!</h1>
    <p>本文</p>
    </body>
    </html>
    """)

print('お疲れ様です。')



※ この例では Virtual hosts を設定しているので、「host8004」ディレクトリ内にファイルをおいています。

詳しくは
Mac上のMAMPでローカルにバーチャルホストを設定する方法
を参照ください。



■デバッグ



うまくいかない場合は、エラーログは apache_error.log にはき出されるので、
Finder で apache_error.log を検索し、原因を突き止めましょう。



■Permission denied


ファイルの実行権限がない時のエラーです。
以下のような log が記載されます。

... [error] [client 127.0.0.1] (13)Permission denied: exec of '/Applications/MAMP/htdocs/host8004/Python.py' failed, referer: http://127.0.0.1:8004/



この場合は、ターミナルで以下を実行します。

$ chmod 755 /Applications/MAMP/htdocs/host8004/Python.py

参考
MAMPでPython3をブラウザに表示
MAMPでPythonを動かす







2017-11-19

私が利用しているポイント、クレジットカードの鉄板の利用方法




■カードが利用できるところでは



普段カードが使えるところは、楽天カードで支払いをします。
楽天クレジットの利用で1%のポイントが還元されます。


楽天市場を利用すると、楽天ポイントが4倍など高還元で利用することもできます。
TVCMの楽天のあの感じとかは、個人的にはあまり好きではありませんが、
楽天はWebページのクレジットカード管理画面などが利用しやすく、還元率が高く得することが多いので、私は楽天のクレジットを利用しています。


ただ、ポイントを貯めるために買い物をするのは本末転倒(お金を使わないで済むのなら、それが一番良い)なので、定期的に必ず必要になるコンタクトレンズの購入などで楽天市場を利用するといいと思います。


私は実際に、定期的に必要なコンタクトレンズの購入は以下のショップを利用しています。




様々な最安値の店舗を探しましたが、最終的にはレンズアミーゴさんで落ち着きました。
ちょっと貼ってみましたが、画像がずいぶんシンプルですね(笑


価格で勝負しているので、他のことにコストをかけないのでしょう。
もしよろしければ、上記リンクをご利用ください。




■たまったポイントの利用法



利用できる場所は多いので、楽天ポイントの利用に困るということはまずないと思います。
私はよくTOHOシネマで映画を観るのに利用しています。


また他の汎用的な方法として、楽天Edyにチャージしてしまうという方法もあります。
楽天クレジットカードに楽天Edyをつけていれば、クレジットカードに付属している楽天Edyにチャージすることができ、電子マネーを使うことができます。


楽天ポイントの楽天Edyへのチャージは、Webページ上でできるので、これもまた便利です。
ただ、楽天クレジットカードのEdyにポイントをチャージするには、Webページでポイントの利用申請をした後に、ファミポートなどを使ってカード側に内容を反映させなければならないようです。


その点だけは手間ですが、ファミマであればわりとどこでもある(と思う・・・)ので、大きなデメリットとはならないでしょう。


おサイフケータイ機能に対応しているスマホをお持ちであれば、モバイルの楽天Edyにポイントでチャージをすることができます。
この場合は、モバイルの楽天Edy内でチャージを完結することができるので、ファミマに行く必要はなくとても便利です。


一番便利に見えるおサイフケータイ機能ですが、一点だけデメリットがあります。
それは不意に機体が故障した時は、スマホ内に残された電子マネーの残高を移行するのに面倒な手続きが必要になるという点です。


スマホにアプリをダウンロードすれば無料で電子マネーを利用できる反面、実はこの時の復旧の移行に500円程度手数料がかかったりする場合もあるので、壊れたときにあれこれ手続きが面倒な方は、カードの現物を利用したほうがトータルでは時間的コストも含めて考えると良いのかもしれません。


※ 最近私は故障による移行作業をしていないので、昔に比べたら簡単に移行できるようになっているのかもしれません。

※ 定期的に発生している期間限定ポイントについては、
楽天Edyにポイントチャージはできません。
期間限定ポイントはTOHOシネマなどで利用するようにしましょう。




■電子マネーをよく利用するのであれば・・・



上記では、楽天Edyにチャージして利用する方法を書きましたが、クレジットカード、電子マネーなど様々な支払い方法がある中で、最もおすすめできるのがVIEWカードとSuicaの組み合わせです。


VIEWカードに電子マネーのSuicaを付属させ、VIEWカードのクレジット機能で
Suicaのチャージをし、日常の支払をSuicaで行うという方法です。


この方法では、Suicaでの支払が1.5%と高還元で、汎用的に利用することができます。
ただし、この方法で貯まるビューサンクスポイントは、利用をするためにモバイルSuicaの利用が必要(ポイントをVIEWカード付属のSuicaにチャージすることができない)であったりなど、ポイントの利用用途が楽天ポイントよりも限定されてしまうことがデメリットになります。


特に首都圏でSuicaを利用する場面が多い方にはおすすめです。
首都圏でなくても、イオンではたいてい支払にSuicaが利用できるので、モバイルSuicaを利用できる環境さえ整えておけば、利用先に困ることはあまりないと思います。






2017-11-17

VisualWorkFlow(フロー)はわからないなーから脱出する




■ Visual Workflow ? Cloud Flow Designer ? フロー ?


これ、非常にわかりづらいです。
Treilheadでも一番最初にこの用語の解説をしているので、
本家もわかりづらいことを自覚しているようです。

結局こう書いてあります。

「簡単に言うと、Visual Workflow は製品名、Cloud Flow Designer はツール、そしてフローはユーザが作成するもの、ということになります。」

気力があったら今度わかりやすい言葉に置き換えたいと思います。




■画面の配置


左側のパレッドより、ユーザインターフェース内にある「画面」アイテムを、
右側のキャンバスに配置します。
ドラッグ&ドロップで可能です。

アイテムを配置したら、アイテムをダブルクリックして設定画面を開きます。

「一般情報」のタブで、以下を設定します。

名前 「New Account」
一意の名前 「New_Account」

「項目の追加」タブで以下をダブルクリックして、項目を追加します。

テキストボックス
数値

追加した項目をクリックして、以下を設定します。

テキストボックス
 表示ラベル: 取引先名
 一意の名前: AccountName

数値
 表示ラベル: 電話番号
 一意の名前: PhoneNumber

OKをクリックして保存します。




■レコードの作成


レコードの作成のアイテムを配置します。
アイテムを配置したら、ダブルクリックをして、設定画面を開きます。

一般設定
 名前 「取引先の作成」
 一意の名前 「CreateAccount」

割り当て
 作成:「Account」
 項目:「Name」、 値:「AccountName」※
 項目:「Phone」、 値:「PhoneNumber」※

※ 選択リストを開き、画面入力項目から選択する




■ノードの接続


画面アイテムからレコードの作成アイテムまでドラッグして線を引っ張ります。




■開始要素の設定


画面アイテムの右上にカーソルを移動させると、「開始要素として設定」ボタンが表示されますので、開始アイテムのそれを押して、画面アイテムを開始要素に設定します。

開始要素に設定されると、開始要素ボタンはカーソルを外しても表示されたままになります。


フローを保存します。




■気力があれば・・・


フローランタイム環境の選択
フローのテスト
フローの有効化
ホームページへのフローの埋め込み

を書きます。




■できることを箇条書き

処理の組み合わせで、以下のことができるようです。

以下は静的アクションに分類されています。
 Chatterに投稿
 メールを送信
 承認申請




参考
Visual Workflow を使用してユーザから情報を収集し、その情報に基づいて操作する

フローの高速作成を使ってレコードの一括作成を行う【Salesforce】

プロセスビルダーとフローで処理を構築






2017-11-16

Salesforceのレポートで知っておくべきこと




バケット項目とは


レポートに表示している値を、新規にカスタム項目を作成することなく、
まとめることができる機能です。




例 「ソース列」が数値項目の場合
数値が以下のときに、以下のように値を表示させることができます

10000以上       →「大規模」
1000以上 10000未満 →「中規模」
上記以外        →「小規模」




例 「ソース列」が選択リストやテキスト項目の場合
項目値が以下のときに、以下のように値を表示させることができます

東京都 or 神奈川県 or 埼玉県 →「関東」
青森県 or 秋田県 or 岩手県  →「北東北」
北海道           →「北海道」
...




カスタム集計項目


子オブジェクトの項目の数値を集計する場合は、以下のように書きます。

Ko__c.num__c:SUM



それぞれ以下のことを表しています。

Ko__c  子オブジェクトのAPI名
num__c  子オブジェクトの数値項目
:SUM  集計方法は合計



特に:SUMが抜けていると、そんな項目はないと以下のように
怒られてしまいますので、気をつけてください。

「エラー: カスタム集計項目定義が無効です: 項目Ko__c.num__cは存在しません。スペルを確認してください。。」


:sumと書いても怒られるようです。
:SUMと書きましょう。




マトリックス形式で複数のカスタム集計項目を表示する場合


カスタム集計項目をマトリックス形式のレポートで複数使う場合は、作成順序に注意してください。
これだけでは何のことかさっぱりですね。カスタム集計項目を複数新規作成すると、上から順番に作成した項目が追加されていきます。カスタム集計項目を複数表示させた場合、実はこの順番でしか表示できません。


つまり、カスタム集計項目同士の表示順序を指定することができません。
この順番は、カスタム集計項目を作成した順になってしまうのです。

     




もしある項目をより下に表示したくなった場合は、新規にカスタム集計項目を作り直しましょう。


また、カスタム集計項目は最大で5つまでしか作れないので、使いこなしてくるとそのうちこの制限に引っかかります。




その他、カスタム集計項目をより高度に使いこなすには、以下が参考になります。

IF文を使った高度なカスタム集計項目を作成する
PREVGROUPVAL関数を使って高度なカスタム集計項目を作成する

PARENTGROUPVAL および PREVGROUPVAL(Salesforceヘルプ)
PREVGROUPVAL関数の使用例
parentgroupval関数の使用例



レポートタイプの表示ラベルの命名方法


以下のようにすると、どのリレーションの
レポートタイプかがわかりやすいかと思います。

例 レポートタイプの表示ラベル1

取引先.活動(WhatID)
取引先.活動(Account__c)
取引先.カスタムobj.活動(WhatID)

つまり

親オブジェクト.子オブジェクト(参照項目API名)

です。



また例えば、都道府県←市区町村←字に関連するレポートタイプについて考えてみます。
レポートタイプの作成パターンは、次の6つが考えられます。

① 都道府県.市区町村.字
② (都道府県.市区町村)セット.字
③ (都道府県.市区町村.字)セットのみ
④ 市区町村.字
⑤ (市区町村.字)セットのみ
⑥ 字

レコードの存在パターンも次の6つが考えられます。

東京都
東京都.中央区
東京都.中央区.日本橋
中央区
中央区.日本橋
日本橋

それぞれのレポートタイプの対象レコードは以下になります。

① 都道府県.市区町村.字

◯ 東京都
◯ 東京都.中央区
◯ 東京都.中央区.日本橋
× 中央区
× 中央区.日本橋
× 日本橋
→ 都道府県が関連しないレコードは対象外

② (都道府県.市区町村)セット.字

× 東京都
◯ 東京都.中央区
◯ 東京都.中央区.日本橋
× 中央区
× 中央区.日本橋
× 日本橋
→ 都道府県が関連する市区町村と
  都道府県が関連する字のみが対象

③ (都道府県.市区町村.字)セットのみ

× 東京都
× 東京都.中央区
◯ 東京都.中央区.日本橋
× 中央区
× 中央区.日本橋
× 日本橋
→ 都道府県が関連する字のみが対象

④ 市区町村.字

× 東京都
◯ 東京都.中央区
◯ 東京都.中央区.日本橋
◯ 中央区
◯ 中央区.日本橋
× 日本橋
→ 市区町村が関連しないレコードは対象外

⑤ (市区町村.字)セットのみ

× 東京都
× 東京都.中央区
◯ 東京都.中央区.日本橋
× 中央区
◯ 中央区.日本橋
× 日本橋
→ 市区町村が関連する字のみが対象

⑥ 字

× 東京都
× 東京都.中央区
◯ 東京都.中央区.日本橋
× 中央区
◯ 中央区.日本橋
◯ 日本橋
→ 字が関連しないレコードは対象外



以上をどう名前に反映するかは悩ましいところですが、以下はどうでしょうか。
もっといい方法があったら教えてほしいです・・・。

① 全都道府県.市区町村.字
② 都道府県.全市区町村.字
③ 都道府県.市区町村.全字
④ 全市区町村.字
⑤ 市区町村.全字
⑥ 全字



マトリックス形式のレポートのポイント


1.行、列のグルーピングは2階層までしかできない


2.レコードの項目を複数表示させたい場合は、
表示 > 詳細 
からレコードの項目を表示できる詳細表示を利用する。

詳細表示を隠した状態で表示できるのは、グルーピングの項目のみになる。




結合形式のレポートのポイント


・複数のレコードタイプを利用したい場合に利用する。
・サマリー形式のレポートを(それぞれのレポートタイプで)横に複数並べたもの。
・それぞれのレコードタイプの親が一致している場合、共通項目として親項目を横断してを表示することができる(3つまで)。
・共通でない子オブジェクトの項目でグルーピングすることはできない。(したい場合はサマリー形式を選択する)
・なので何のためにグルーピングするのかは不明





活動に関するレポートのポイント


標準で自動的に作成されるレポートタイプを利用しないと、ToDoのみ、行動のみ、活動予定のみ、完了活動のみなどのしぼりこみはできない。
上記のステータスを判別できるような項目があれば、その項目をレポートの条件に追加するか、カスタム項目でチェックボックスの数式項目を作れば対応できると思いますが・・・。



レポートに作成した項目が出てこない!


新規で作成した項目をレポートで使用するには、そのレポートのレポートタイプの項目レイアウトで新規項目を追加してあげる必要があります。


レポートタイプの詳細画面から、「レイアウトを編集する」を押します。



以下で項目を追加できればいいのですが、一見どうやって追加するのかわかりません。
















ちょっと右にスクロールしてあげましょう

















こういうところがSalesforce嫌いです(笑
あとはD&Dで項目を追加してあげましょう。

あとレポートだけですが、項目のラベル名を自由に設定することもできます。
(操作性が悪いので蓋をしておきたい機能ではありますが・・・)

Adsense をやる上で、記事のタイトルが大事な理由

ブログを始めて少し時間も経ち、
PV数もそこそこ出るようになってきました。


とはいってもまだまだド素人の数字ですが・・・。
ブログを書くようになって結果に出てくるPV数をみていると、
次第に他人のブログを読む時の着目点も変わってきました。


自分が普通に閲覧者として他の記事を読んでいると、
その記事を読み終わったとき、2つの場合に分かれます。


1.目的を達成したので記事を閉じる
2.関連で紹介されている他の記事が気になって開く


どちらを選んでいるかはその時の自分の気分ではなく、
わりとサイトによって決まっているような気がします。


実際、毎回ついつい他の記事を読んでしまうサイトは決まっていました。
これは Adsense にとって重要な事だと思います。


Adsense では、PV数をのばすことももちろん重要ですが、
クリックしてもらうような仕組みを仕掛けることも重要です。


自分のサイト内の記事を読んで巡回してもらうような状態を作れば、
たくさんの記事を読んでいるうちに、次第に集中力がなくなってきます。


Adsense ってこの瞬間が大事だと思います。


集中力がなくなって、ちょっと休憩ってなったときに
押されるのが Adsense の広告だと思うからです。


新聞やポストに入っている折込チラシを、必要ないと思っていながら
読んでしまうタイミングって、集中力が切れたときが多くないですか?


そんな新聞やポストに入っている折込チラシとのアナロジーから
Adsense 広告に工夫を活かしてみるのも面白いかもしれません。




■関連記事を読んでもらう工夫



関連記事をついつい読んできまうサイトって
記事のタイトルの付け方が上手ですね。


例えば




年末調整で申請可能な控除一覧
https://keiei.freee.co.jp/2013/12/02/chousei/



関連記事
年末調整の前に知っておきたい13種類の控除の要件・控除額まとめ




何も考えずに私は上の例で記事のタイトルを書こうとしていましたが、
本家のタイトルの記事の付け方とは圧倒的に読みたくなる
度合いが違うタイトルの付け方をしようとしていたということに気づきました。


タイトル一つで閲覧していただける確率が大きくなるのであれば、
時間の投資対効果は十分高いと思います。


書く側の視点から他人の記事を観察してみることは大事ですね。
これからはそういう視点で他の記事も観察してみようかと思います。




関連記事
【Blogger】AdSenseに登録する




■見本になりそうな記事

blogger でアドセンスを使う|しまうまブログ

全体的に見やすく、文章も読みやすい感じがしました。





2017-11-15

年末調整で記入が必要な場合、必要でない場合

■年末調整の基本的な考え方


年末調整の基本的な考え方は、手取りから何か支払った場合に
申告して税金を控除する、ということです。


給与所得者が受け取る給与は社会保険料などが差し引かれた額になっていますが、毎月引かれる所得税は、ここで引かれる社会保険料などももちろん考慮した額になっています。


しかし、すべて差し引かれた後の手取りで去年払えなかった年金などを払った場合は、その分を考慮して所得税を修正する必要があります。


そのための申告書が年末調整になります。
なので、基本的な考え方として、自分の手取りから社会保険料等を支払っているかどうかが、年末調整に記入が必要な事項があるかどうかの第一のチェックポイントとなっています。



以下では、記入できるケースを記録していきます。




■社会保険料控除


以下を支払った場合は申告可能かもしれません。


・健康保険、国民年金、厚生年金保険および船員保険の保険料
・国民健康保険の保険料または国民健康保険税
・介護保険法の規定による介護保険料
・雇用保険の被保険者として負担する労働保険料
・国民年金基金の加入員として負担する掛金
・厚生年金基金の加入員として負担する掛金
・国家公務員共済組合法、地方公務員等共済組合法、私立学校教職員共済法、恩給法等の規定による掛金、納付金




参考 年末調整で社会保険料控除が必要なのは、どんなとき?
https://allabout.co.jp/gm/gc/323776/




■個人型確定拠出年金を払っている場合


小規模企業共済等掛金控除 > 個人型又は企業型年金加入者掛金
の欄に額を記入します。




■住宅購入でローンを組んだ場合


住宅借入金等特別控除が受けられる可能性があります。
受けられる要件は細かいので、詳細は国税庁のページで確認しまししょう。


申請用紙は、住宅購入1年目に確定申告した方に
ついて専用の用紙が付属してくるようです。




■住民税について


提出された年末調整で一年の課税対象を決定し、確定した収入をみて住民税は課税をしてきます。


なので、年末調整をきちんとしないと、所得税が本来の額に戻らないことに加え、来年の住民税も余分に徴収されることになります。


ちなみに自分で納入した住民税は所得税の控除対象にならないのかと思いましたが、
所得税の年末調整の控除の対象にはならないようです。




参考 住民税は所得税の控除対象にならないのですか?
https://oshiete.goo.ne.jp/qa/5896642.html

年末調整の前に知っておきたい13種類の控除の要件・控除額まとめ
https://keiei.freee.co.jp/2013/12/02/chousei/






実はできないSalesforceの落とし穴

できると思ってたけど実は出来なかった、
そんな細かいところまで考慮してなかった
など経験者でも陥りやすい罠について記録してみます。

■活動のリストビューではインライン編集ができない


設定画面の
ビルド> カスタマイズ> ユーザ> ユーザインターフェース
にある「インライン編集を有効化」


をオンにしているんですが、できませんね。


詳細画面では可能なようです。






■ユーザへの参照項目を必須項目とすることができない


カスタムオブジェクトを作成し、ユーザへの参照項目を作成すると、
必須オプションが表示されず、参照項目を必須項目に設定することができませんでした。

画面からの入力レベルで良ければレイアウトで必須設定で対応
データ連携も含めて弾きたければ、入力規則、トリガ
で制御する必要があるようです。


■ユーザは参照項目を作れない


ユーザのカスタム項目では参照項目を作れません。
少なくとも標準のGUIでは用意されていませんでした。




項目自動更新を使えるのは


項目自動更新を利用できるのは、子の変更内容を親に反映させたいときだけ
親から子だと、子は複数いるので一括変更になるからです。

発火条件として新規作成時、編集時、特定の条件を満たす編集時があります。
条件設定は数式が使えるので、工夫次第で色々使えます。



インライン編集が無効になる場合


レコードの View のインライン編集を使った項目の一括更新は、以下の場合に無効になり、その項目だけインライン編集が不可能になります。

・項目の連動関係
・View でレコードタイプの絞込条件が設定されていない場合(レコードタイプが2つ以上設定されている時)

■新規作成ボタンを全てのレイアウトから削除できない?


※以下の記述はプロファイルのオブジェクト権限で「すべて更新」を
オンにしたまま「新規」をオフにできるという観点が抜けているため、
関連するバックエンド処理(Apex等)がWith Sharingで記述されていない限り、
オブジェクト権限の設定で対処することができます。

作成はトリガで行うけど、編集はユーザ操作でできるようにしたい
かつ他人所有のレコードも編集したい要件の場合の話になります。

オブジェクト権限で作成権限を与えているプロファイルのユーザでは、
親レコードの関連リスト、リストビュー、レコード参照画面からは
「新規作成」ボタンは削除できるのですが、
タブを押したときに最初に表示される「タブ画面?」からは消去できないようです。

どうしても「新規作成」ボタンを表示させたくない場合は、
タブの表示権限をなくすか、オブジェクトの作成権限をなくすしかなさそうです。

Classicに変更してもダメです。

実は、オブジェクトの新規作成の権限をオフにしても、
共有設定次第で他人所有のレコードの編集を可能にすることはできそうですが
共有設定の変更はセキュリティモデル全体への影響があるので、慎重に検討する必要はあります。

具体的には、共有設定を変更可にするとくことです。

他の解決方法としては、新規作成ボタンは表示させるけど、
新規ボタンの割当をVFページにし、そのページで新規作成はできない旨を案内するという方法や、Beforeトリガで弾いてしまうという方法も考えられます。

標準ボタンをVFで上書いてしまう方法の注意点については、次でお話します。

■削除ボタンを全てのレイアウトから削除できない?


※プロファイルのオブジェクト権限の「すべて更新」と「削除」は
連動しているため、「すべて更新」をオンかつ「削除」をオフ
という設定ができません。
なので下記の内容は正しく記述されています。

前述のパターンと似ているのですが、他人所有のレコードを編集させたいがために
オブジェクト権限ですべて変更をチェックを入れている場合、削除権限のチェックを単独で外すことはできません。

削除ボタンについても、ある程度設定やレイアウトで削除ボタンを
非表示にすることは可能ですが、どうしても消せない場所があります。

親オブジェクトの関連リストからレコードを参照したときの右側にある、
その他の操作のボタンリストには新規や削除があります。

新規ボタンは親オブジェクトのレイアウトにより非表示にすることはできますが、
削除ボタンについては現状レイアウト設定からは非表示にすることはできません。

この場合についても、削除ボタンをユーザ操作でレコードを削除できない旨の
VF画面で上書いてしまうという方法が取れます。

しかしこの標準ボタンを上書きしてしまう方法は、プロファイルに関係なく
一律VFの処理に動きが統一されてしまうため、
システム管理者であっても削除ボタンを押した時は同様のVF画面が表示されることになります。

Apexでコントローラを作成してあれこれできなくはないですが、
消せない削除ボタン一箇所のために、個別開発をするというのも考えものです。

お客様と運用で回避することで握れるのであれば、
ここまでする必要もないと思われます。

ちなみにですが、共有設定を変更可にしてオブジェクト権限の削除のチェックを外せば
要件を満たせそうですが、セキュリティモデルを大きく変更することになりますので、
この方法を取る場合は慎重に検討する必要があります。

■システム管理者プロファイル以外のユーザは、DataSpiderから公開グループをInsertできない


Salesforceのヘルプでは、下記の記述があります。

公開グループを作成および編集できるのは管理者と代理管理者のみですが、誰でも自分の非公開グループを作成および編集できます。

https://help.salesforce.com/articleView?id=creating_and_editing_groups.htm&type=5

DataSpider連携用にユーザを作成して、連携用のプロファイルを作成している場合、
そもそも公開グループの作成権限がない可能性があります。

公開グループの作成権限がないユーザを代理管理者に設定すれば、
公開グループを作成できると思い、試してみたのですが、
APIを利用しての公開グループの登録は禁止されていて、エラーにより弾かれてしまいました。

代理管理者が悪いことをできないようにセキュリティがしっかりと考えられているようです。
Salesforceはやはりセキュリティがしっかりしていますねと思わされる事象でした。



2017-11-12

タイヤ交換を最安値で済ませる方法を探る

普段街乗り用にしか使わないフィットのタイヤが
いよいよひび割れしてきました。


さすがにサイドウォールがひび割れの状態は
良くないと思うので、最安値で新品のタイヤに
交換できる方法を探りました。


ちなみにヤフオクとかの中古激安タイヤも検討しましたが、
きちんと状態を確認しないと同じひび割れタイヤを購入してしまい、
タイヤの処分費用だけかかってしまう可能性があったので
今回は新品のみに限りました。




■タイヤの組換費用って意外と高い!?


地方で学生をしているときは、友達や先輩が
ガソリンスタンドでバイトしているので、
そこにお願いして無料で組換をさせてもらっていました。


関東に来て(それもわりと都心寄り)いい年の
社会人になってさすがにそれは時間もないですしできません。


なのでネットで激安店からタイヤを購入して、
持ち込みでタイヤを組み替えればいいかなと思ったのですが、
調べてみるとタイヤの組換って意外と高かったのです。


毎度メモ程度ですみませんが、以下に参考になったサイトなど
情報をメモしておきます。




■AUTOWAYが近くにあればそこに決定!?


私にとっての結論は、
近くにAUTOWAYがある場合は、そこで注文して
組替えてもらうと安かったです。
http://www.autoway.jp/


近くにAUTOWAYがない場合は、楽天や価格コムなどで
最安値で買って、ガソリンスタンドで組替えてもらうのが
汎用的で安いかもしれません。




■タイヤ代よりも組換代のほうが高くなることがある!?


ただし、激安タイヤを買う上で是非考慮してほしいことがあります。


はじめに自分でタイヤ代から組換代までトータルで見積ったときは・・・


タイヤ4本で1万円ちょっと
4本組換(バランス調整あり)で12000円


タイヤ代よりも組換代のほうが高いじゃん!!
ってなりました。


ここまで組換代が高いと、激安で耐久性が中程度の
謎タイヤを買うより、ある程度耐久性のある国産タイヤを
買った方がコストもあまり変わらないかもしれないし、
何よりも時間的コストの節約になるかもしれません。


海外製謎タイヤが耐久性2、3年でひび割れて、
また新規にタイヤを交換する場合と


一般的な国産タイヤで耐久性が5、10年で
新規にタイヤを交換する場合


もしかしたらトータルのコストでは、
一般的な国産タイヤのほうがいいかもしれません。
品質の安心付きとなったら、一般的な国産タイヤが優位になってきますね。


GOODYEARでは、タイヤの10年使用の例も記載されています。
https://www.goodyear.co.jp/knowledge/long-termuseage.html




時間コストも抑えて国産タイヤでパフォマンスがいい。
なおかつ値段も大きく変わらないのであれば、
一般的な国産タイヤを買ってそこで組替えてもらうのが一番かもしれませんね。


少なくとも高速を利用する可能性のある車に対しては、
タイヤで極端にケチるのは良くないと思います。


ロードノイズに関しては、やはりタイヤの品質が大きく出てくると思うので。




■タイヤ購入、組換店を探す


購入場所に関しては、ディーラーは基本的に値段は
高めの設定なので、ディーラーでのタイヤ購入、
組換はあまりおすすめできません。


価格コムで適合するタイヤを検索して、安い順にショップが
自分の居住地の近くにあるかどうかを調べて、
近くにあるショップの商品があれば、
値段を見積って比較するのが最短だと思います。




参考 
ディーラーでタイヤ交換したら
タイヤ交換費用の安いところ
メーカー別タイヤの品質について
http://yomemanners.com/2456.html






2017-11-11

【Excel】同じものがあるかないかを判定する関数

Excel で特定の値のセルと一致する値のセルが範囲内にあれば◯
なければ×を返す関数の書き方です。


IF関数とCOUNTIF関数を使います。
まずはそれぞれおさらいしてみましょう。




■IF関数

定義は以下です。
IF(論理式, TRUE の処理, FALSE の処理)



以下は、セルA1とB1の値が一致する場合、"◯"と表示し、
不一致であれば"×"が表示されます。
=IF(A1=B1, "◯", "×")




■COUNTIF関数

定義は以下です。
COUNTIF(範囲, 検索キー)



以下は、A1からA100の間に値が"りんご"のセルが
いくつあるかを返します。
COUNTIF(A1:A100, "りんご")




■IF関数とCOUNTIF関数を組み合わせる

以下は、"りんご"という値のセルがあるかどうかを◯×で返す関数です。
IF( 1 <= COUNTIF(A1:A100, "りんご"), “◯”,“×” )


もし値が"りんご"のセルが範囲内に1つある時
COUNTIF関数の部分を計算すると
→ IF( 1, “◯”,“×” )


IF関数を計算すると
IF( 1 <= COUNTIF(A1:A100, "りんご"), “◯”,“×” )
→ ◯


もし値が"りんご"のセルが範囲内にない時
COUNTIF関数の部分を計算すると
→ IF( 0, “◯”,“×” )


IF関数を計算すると
→ ×




2017-11-10

【Salesforce】プロセスビルダーの全体像

■プロセスの作成

以下を設定します。
プロセス名、API名、説明、プロセスを開始するタイミング

「プロセスを開始するタイミング」は以下の2パターンから選択
  レコードが変更された時
  別のプロセスから呼び出される時




■オブジェクトの選択

プロセスを開始するタイミングの対象のオブジェクトを選択します。
ここでは、発火タイミングで


レコードを作成時
レコードを作成と編集時


を選択できます。
再帰の設定もできます。




■条件を追加

アクションの実行対象のルール決めをします。
実行条件は以下の設定が可能です。


1.項目の一致条件
2.数式
3.無条件で実行


数式ではオブジェクトの項目に加え、親レコードの項目、
システム変数を用いて数式を作成することができます。




■アクション

以下のアクションが可能です


Apex
Chatterに投稿
クイックアクション
フロー
プロセス
メールアラート
レコードを更新
レコードを作成
承認申請


クイックアクションについて
 以下にに関連するアクションを設定することができます。

  オブジェクト
  グローバルアクション
  レコードを更新
  レコードを作成
  活動を記録




■アクション終了後

「この条件を評価した後の操作を指定」の部分です。
以下が選択できます。


プロセスの終了
次の条件に進む






【データローダ】文字化けしてるエクスポートファイルの対処法

Salesforce の data loader で Export でダウンロードしてきた
extract.csv ファイルを Excel で閲覧すると、文字化けで
日本語がみれない時の対処法です。





◆csv ファイルの文字コードを変換する方法

この方法は、csvを加工してSalesforceへインポート(insertやupdateなど)
する場合は、再びUTF-8に戻す必要があります。

■利用アプリ


私が使っているのは CotEditor です。
さくらエディターでも同様なことができると思うので、
手元にあるテキストエディターを利用するといいと思います。

■対処法


文字化けしている csv ファイルを CotEditor で開きます。


エンコーディングで Shift JIS を選択します。
再解釈か変換かを聞かれるので、変換を選択します。


Shift JIS に変換されました。


変更を保存し、再度 Excel で csv ファイルを開くと
文字化けが解消されます。





◆外部データの取込で文字コードを指定する


■インポートウィザード


新規作成にて Excel を起動します。
データ > テキストファイル を選択します。
ウィザードが出てくるので、文字コードで「UTF-8」を選択します。
プレビューの表示で文字化けしていないことを確認できます。

■区切り文字の設定


次の画面では csv ファイルなので、区切り文字は「カンマ」のみ選択します。

■データ形式の設定


区切った後のデータ形式は、すべての列で「文字列」を選択しておくと
0先頭の文字が消去されるなどのリスクはなくなります。


一番左の列をクリックした後、一番右端の列をShiftキーを押したままクリックすると
一括して列のデータ形式を文字列に指定することができます。

■データを返す先


データを返す先は既存のシートの一番左上でいいと思います。
OKを押します。



◆BOMを付ける方法(mac OS)


BOMというものをつけることで、csv ファイルを開くときに、
Excel で Shift JIS としてファイルを解釈させるのではなく、
UTF-8のファイルとして解釈させる方法です。

■CotEditor を使う


csv ファイルを CotEditor で開き、
「エンコーディング」を「Unicode(UTF-8)」を
選択して保存します。


Excel で csv ファイルを開くと、文字化けせずにファイルを開けます。
ただ、BOMをつけると一部ではエラーが発生するようなので、
正常な動作をしない場合には、BOMは削除したほうが良さそうです。


※ 追記
BOM付きUTF-8に変換した後に Excel でファイルを編集、保存をすると
データがカマ区切り(,)ではなくタブ切りで保存されてしまうようです。


「名前をつけて保存」から、ファイルの種類をcsvに指定して保存しても
Shift JIS で保存されてしまいます。


Shift JIS で保存した後、CotEditor で UTF-8 に変換することが必要ですね。




◆BOMを付ける方法(Windows)


Windows の場合には、メモ帳を使います。


csvファイルをメモ帳で開いて保存するだけで、
BOMは付加されます。


あとは Excel ファイルを開いて確認してみてください。




参考 Excelで文字コードを変換せずに開く方法
http://primarytext.jp/blog/1275






2017-11-09

【Office 365】無効化されたOffice製品ライセンスを有効化

試用期限が切れて90日経つと、PCにインストールした
クライアントアプリ(ExcelやWordなど)は閲覧専用になり、
編集ができなくなります。


再び編集できるようにするためには、サブスクリプションで
ライセンスを購入するか、別の試用版のライセンスをアクティブにします。


■ライセンスの状態の確認
管理者アカウントでログインし、サブスクリプションで、
元から利用していたライセンスの状態を確認します。
使用期限から90日以上経過すると「サービス提供を停止済み」
かつ「(データ削除済み)」の表示がされていると思います。
https://portal.office.com/AdminPortal/Home#/subscriptions



■サービスを購入する
以下で利用するサービスを選択します。ここでサービスを本契約したり、
試用版を申し込んだりできます。
https://portal.office.com/AdminPortal/Home#/catalog


サービスの契約が完了し、サブスクリプションを確認すると、
先程契約したサービスが追加されています。



■クライアントアプリのOffice製品を有効化する
サブスクリプションでアクティブになっているライセンスを選択すると、
下部に「ユーザーに割り当てる」リンクがありますので移動します。


Office製品をアクティブにしたいユーザをクリックします。


「製品ライセンス」の編集を押します。


必要なライセンスをオンにして保存します。


■クライアントアプリ側の操作
何かしらのExcelファイルを開くと、上部に閲覧専用として
起動している旨のメッセージが表示されます。


そのメッセージ中に別のアカウントでサインインするリンクがあるので
そこから先程製品ライセンスを割り当てたユーザアカウントで
サインインします。


以上の手順でOffice製品を有効化できると思います。