あーるPG - 社会人のデジタル生活

日曜プログラマになろうかなーと思った30代理系社会人の、キャリアアップや趣味(特にデジタル情報)の記録。らーめんとビールが好き。

イオンでおむつを買うときの最大還元率計算

イオンカードセレクト、WAONのルール

イオンカードセレクトからWAONオートチャージ - WAONポイント0.5%還元
WAONでお買いもの - WAONポイント0.5% (5のつく日は0.75%~1.5%、10日は2.5%)
オーナーズカード提示で買い物 - 現金3%~7%還元
イオンカードで購入 - ときめきポイント0.5%還元(5のつく日は2倍、10日は5倍)
(WAONをクレジットカードでチャージ - なし
毎月20日・30日にイオンでWAONで支払うと5%OFF、ただしキッズリパブリックのクーポンとの重複無し

ということは

イオンカードセレクトを作ってWAONオートチャージし、オーナーズカードを出しつつキッズリパブリックのクーポンを使って10日におむつを購入を繰り返すと、

商品は5%OFF、現金3~7%還元、WAONポイント3%

ということに。こう見ると、イオンカードセレクトのオートチャージの影響少なすぎ。

でもイオンカードセレクト強い!オンライン登録が得!

イオンカードセレクトはお得なのですが、オンラインで登録すると6000円分の還元が特典が狙えるのですよね。店頭申し込みだとたぶん0.
しかも、お友達紹介制度もあり、これを利用したほうが良い。紹介ID【6XH4AR】 を使ってみてください。
しかもハピタス経由にすると、1500円相当のポイントが入るそうです。

www.aeon.co.jp

JALマイレージモールとp-one wizカードでamazonで買い物したときの還元率を計算してみる

クレジットカードのポイントモールは、対象のクレジットカードを持っている人が利用するもの。それに比べてJALマイレージモールはクレジットカードに依存しなかったり、マイレージがたまったりするので使いようによってはお得です。

p-one wizカードとJALマイレージモールを使ったときのポイント還元率を計算してみました。

JALマイレージモール(amazon)のルール

・購入額の200円につき1マイル付与(0.5%)。ただし案件ごとに小数点以下四捨五入。(※)

※ 公式な記述が見つかりませんでしたが、付与されているポイント数を見るとそんな感じ。

p-one wizカードのルール

・個々の購入案件が1%引かれて請求される。
・個々の請求額の0.1%(小数点第2位以下切り捨て)を付与ポイントとする。
・月ごとの請求で、個々の付与ポイントを合計し、小数点以下切り捨てた額がポケットポイントとして実際に付与される。
・1ポケットポイントが、Tポイント5ポイントに変換される。(300ポケットポイント単位)

・200円の購入 x 10件
マイル:200 x 0.005=1.
値引き:200 x 0.01 = 2
ポケットポイント:(200-2) x 0.001 = 0.198. 切り捨てで0.1

還元はマイルが1 x 5 = 5マイル. 値引きが2 x 5 = 10円, Tポイントは0.1 * 10 = 1
(5 + 10 + 1)/(200 x 5) = 1.6%還元

比較表

10000円ぐらいの買い物を分割購入した場合

f:id:aru_pg:20171121104146j:plain

JALマイレージモール+ポケットポイントの還元率

単価が101円のときが還元率最大で2.43%, 199円の時は最低で1.256%となりました。約2倍の差があります。
四捨五入と切り捨ての影響です。

終わりに

ポケットポイントは1%値引きされる対象に制限があるので、条件を確認し、さらに少額で買ってみるなどするのが良いでしょう。
faq.pocketcard.co.jp


動的配列を使う

動的配列の使い方

VBAで配列を使うとき、サイズを後から変更できる”動的配列”というものがあります。
ただ、ちょっと癖があるので、慣れが必要です。
VBAといえばCollectionなのですが、簡単に使えるかな、というイメージがある人はどうぞ。

'初期化
Dim arr1() As Integer ' ()内を空欄で定義。
' 配列数の指定(中身をクリア)
ReDim arr1(0) ' ReDimで配列数を指定。arr(0)のみある。
ReDim arr1(1 TO 2) ' 要素の範囲を指定できる。これならarr1(1), arr1(2)になる

' 要素を全部使う
Dim str As String
srt = ""
For i = LBound(arr1) To UBound(arr1) ' LBound()で取得できる要素番号の最小値、UBound()で最大値を取得できる。
srt = str & arr1(i) & Chr(13)
Next i

' 配列の追加(中身を保持)
ReDim Preserve arr1(UBound(arr1) + 1) ' Preserve指定で中身を保持。

' 未初期化状態への対処
Dim arr2() As Integer
' ReDim Preserve arr2(UBound(arr2) + 1) ' ReDimしないでUBound()すると、エラーが出る

If Sgn(arr2) = 0 Then 'なぜかSgn()関数で判別できるのでそれを使うか
ReDim arr2(0)
Else
ReDim Preserve WarnList(UBound(arr2) + 1)
End If

For i = LBound(arr2) To UBound(arr2) -1 ' 配列の最後尾が番犬だと思って要素使用時に排除するか。
srt = str & arr2(i) & Chr(13)
Next i

Windows10に移行したときの、office VBAの設定

自動化環境って、必要な設定忘れちゃいますよね。
PC移行したら自動化が動かなくて「うわーん」ってなるやつ。
excel VBA, Outlook VBAなどでIEコンポーネントを使うとき、コードの移植以外に必要なことをまとめておきます。


  • マクロのセキュリティ設定変える

https://support.office.com/ja-jp/article/Office-%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E3%83%9E%E3%82%AF%E3%83%AD%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%BE%E3%81%9F%E3%81%AF%E7%84%A1%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B-12b036fd-d140-4e74-b45e-16fed1a7e5c6

  • DOMへの参照設定する

http://www.ken3.org/cgi-bin/group/vba_ie_object.asp

  • 80070005エラー回避

windows10(?)ではie11からcドライブ直下に書き込みできない。フォルダを作って回避。

  • オートメーションエラー

ie11のセキュリティ設定の「保護モードを有効にする」をON。
http://nanameue-news.com/2014/07/27/312/

  • 署名

やらなくても動くが、「起動時にマクロがあるよ」というウィンドウがでる。
回避方法は長くなりそうなので割愛するし、やってない。

gnu make向けmakefileをWindows10 64bitに持っていった ざっくり

●前提
諸事情につき、前はcygwingnu makeでやってたのを、VSのnmakeに通すように変更した。


●手順

  • ・VisualStudioをインストールする

・インストールフォルダの中のvcvars64.bat、nmakeを見つける。パスを通しておくとよい。
makefileを書き換え
  $(CC)をclにする。
  .oを.objに置き換える
  命令の引数の"$^"は"$**"に置き換える。
  linuxコマンドをwindowsコマンドに置き換える。(rmなど)
  $(INCLUDE)、$(LIBPATH)、$(LIB)を使っているなら何かに置き換える。(すでに設定されているので)
・必要に応じてmake clean相当をしておく。
コマンドライン(cmdかPowerShell)で、vcvars64.bat、nmakeの順に実行。


●キーワード
NMAKE : fatal error U1077: 'cl' : リターン コード '0x1'
makefile(20) : fatal error U1001: 構文エラー : 無効な文字 '^' がマクロ中にあります。
main.exe : fatal error LNK1120: 11 件の未解決の外部参照
NMAKE : fatal error U1077: cl.EXE"' : リターン コード '0x2'


●参考
https://msdn.microsoft.com/ja-jp/library/f35ctcxw.aspx
http://masahiroshiomi.jp/blog/windows/99/
https://okwave.jp/qa/q657193.html