英会話
場面ごと単語、フレーズ
・面接
be called to the interview
be strict on time(時間に厳しい)→be punctual(時間を守る)
I saw this position on the Web site.
colleague(発音:カーリーg)
what faculty were you in?
I have good patience
resume(履歴書)はレジュメ、resume(動詞)はリジューム
Im here to do(~しに来た)
・職業
buddist(仏教徒)→monk or buddist priest(僧)
full-time housewife
・その他
not quite sure
paid holiday / paid vacation (有給休暇)
national holiday (祝日)
successive / consecutive holidays (連休)
Im sweaty(よく汗をかく)
pollen Allergy(花粉)
differential(微分)
evaluate(評価する)
derive(導出する)
It depends on time and situation(時と場合による)
approximate(近似する)
cherry blossoms(桜)
hand out(配る)
Orthogonal basis(直交基底)
topic(話題)
What is the percentage(proportion) of A in B?(割合をきく)
I didn't like being in front of people
at an early time
VBAコーディング
・サブプロシージャ
Sub aaa()
メイン処理
GoSub sub1 'ここでsub1に飛ぶ
メイン処理
Exit Sub
sub1:
サブ処理
Return '戻る
End Sub
・業務エラー処理(スローして呼び出し元で)
Sub a()
IF (エラー) then Err.Raise Number:=999
End Sub
Sub Main()
On Err Goto Have.Err
call a()
Exit Sub
Have_Err:
Select Case Err.Number
Case 999 (処理)
End Sub
・cell→rangeの変換
cells(1,1).Adress→$A$1
cells(1,1).Adress(True,True)→$A$1
cells(1,1).Adress(False,False)→A1
など
・Selectメソッドは使わない
Selectをするたびにアプリケーションの動作が入り、実行速度が犠牲になりますし、クリップボードを使うのはユーザーの干渉を受ける可能性があり危険です。
https://tonari-it.com/excel-vba-coding-guide-line/#toc13
・Callを使ってプロシージャを呼ぶ
Callなしで使われているコードは、(VBAに慣れてないと)「このコードは何かのメソッドやプロパティかなぁ」などとなってしまうことがあるからです。
http://www.excel-wing.com/study/jitumu/723
・GotoとGoSub
VBAについて
・コメントアウトをショートカットメニューにorショートカットキーを設定
https://tonari-it.com/excel-vba-vbe-comment-shortcut-key/
・自動メンバー表示
ctrl+space
↑↓で選んでtab押す
・インデント
コードを選択してtab
戻すときはshift+tab
・コード中の改行
「半角スペース」+「アンダースコア」を使う
Sub func(byval a as long ,byval b as long _
byval c as long)
・ステップイン
f8
・イミディエイトウィンドウとは
デバック時に変数の中身を調べたりできる
https://tonari-it.com/vba-immediate-command-input/
・プロシージャの移動
ctrl+↑ や ctrl+↓で移動
・変数や関数の定義に移動
選択してshift+f2
ctrl+shift+f2で戻る
・アドイン
RubberDuck入れたい
C++ 配列について
〇(Cの配列)
・宣言
int a[10];
int a[4] = {1, 2, 3, 4};
int a = {1, 2, 3, 4};
・サイズ
sizeof(a)/sizeof(*a)
※配列とポインターについて
http://www9.plala.or.jp/sgwr-t/c/sec10-2.html
〇char型
・1バイト
・ASCIIコード(アスキーコード)という文字コードに変換できる→16進数になる
例 statistic_cast<int>('A') …65になる
・文字列とポインタの関係
'ABC'のような文字列は実行時にABCの順にメモリ上に置かれ、Cの次は'\0'が置かれる。
'ABC'はconst char[4]で、先頭文字'A'のアドレスに変換される。
const char *str;
str='ABC';
とすると
*(str+i)で'A''B''C'をi=0~2で表せる。
str[i]でもいい
*('ABC'+i)や'ABC'[i]でもいい
〇(Cの多次元配列)
・宣言
int a[3][4];
int a[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
int a[4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};→最初の添え字のみ省略可能
〇std::array(C++11から追加されたもの)
通常配列では、std::vector の size() や back() などの便利な機能が使えない。 それらを使いたいけど、サイズは固定でいいので vector を使うほどでもない。ってときは std::array の出番だ。
・インクルード
#include<array>
〇std::vector
・インクルード
#include<vector>
・宣言
std::vector<型名> 変数名;
std::vector<型名> 変数名(要素数,値); →同じ値をすべての要素に入れる
std::vector<型名> 変数名= {要素1,要素2}; →C++11以降可能に
・サイズ
vec.size()
〇list
テンプレートまとめ①関数テンプレート
〇テンプレート実引数の推定
テンプレート実引数の推定...テンプレート関数を呼び出す時、テンプレート実引数の型を、コンパイラに自動判断させる機能
template <typename T>
void write(T a);
write(100);
のような感じ。
〇関数テンプレートを実装する場所
複数のファイルを使ったプログラムでは、関数宣言をヘッダファイルに記述し、定義をソースファイル側に記述するが、関数テンプレートの場合、うまくいかない。
→宣言も定義も同じヘッダファイルに記述。(定義のみでいい)
〇可変個テンプレート仮引数(C++11)
詳しくは以下の例。再帰処理が必要。
include <iostream>
void write_inner()
{
}
template <typename T, typename... ARGV>
void write_inner(T first, ARGV... argv)
{
std::cout << first << " ";
write_inner(argv...);
}
template <typename... ARGV>
void write(ARGV... argv)
{
write_inner(argv...);
std::cout << std::endl;
}
int main()
{
write();
write('a');
write(10, "xyz", 0.5);
}
a
10 xyz 0.5
VS2017
・クラウド接続
クラウド上にライセンス、設定、アカウント情報が保存、同期できる
ヘルプ→製品の登録 で確認できる
・プロダクトキーの入力(Communityは無理らしい)
インターネット接続環境以外でVSを使うため
my visual studioなどのポータルサイトから事前に入手
ヘルプ→製品の登録→プロダクトキーを利用してロックを解除
・WPF...WindowsFormAppの進化版??
見た目(=外観デザイン)に関する部分をXAML言語で記述し、ロジックをC#言語などを用いて記述することで、
アプリケーションの見た目に関する部分をロジックから完全に切り離す構造になっている。
・プロジェクト=XML
.vbproj or .csproj はXML形式なのでテキストエディタで編集可能
・プロジェクトテンプレート
・マルチターゲット
新しいプロジェクト作るときに.NetFrameworkのバージョンを選択できる。
ただしバージョンによって使えない構文もある可能性。
・参照の追加
アセンブリ、プロジェクト、共有プロジェクト、COM、参照のタブがある
外部DLLもここで参照
現在のソリューション内のプロジェクトを参照でき、循環参照は無理
・検索と置換
クイック検索/置換
複数ファイル内を検索/置換
・ブックマーク機能
ツールバーで現在の行にブックマークを追加 or 編集→ブックマーク→ブックマークの設定、解除
・コードエディタのスクロールバー
コードの全体像が見れる
さらに詳細にみるにはツール→オプション→テキストエディタ→該当する言語表示→スクロールバーの
中にあるマップモード を使用
・参照ハイライト
コードのキーワードをダブルクリック
・行移動
Altキー押しながら矢印で上下
・コード整形
編集→詳細→ドキュメントのフォーマット
一部だけならコードを選択してから同じことをする
・コードスぺニット、ブロックスぺニット→いらん
・クイックアクションとリファクタリング
クイックアクション...古い構文を新しい構文に変換
コードを選択した後Ctrl+. もしくは右クリックから
・ソリューションのプロパティ
プロジェクトの依存関係...参照しているプロジェクトを示す。ビルド順序を設定できる。
コード分析設定...分析のゆるさを変更できる
デバックソースファイル...?
構成プロパティ...これか構成マネージャでビルド構成を設定できる
たとえば「デバック時は単体テストプロジェクトをビルドしてテスト実行するがリリース時はビルドしない」など
・デバック時のクイックウォッチウィンドウ
メインメニューのデバック→クイックウォッチ
・診断ツール
デバック→ウィンドウ→診断ツール
・NuGet
パッケージマネージャー
・単体テスト
クラスをコードエディタで開き右クリックメニューから単体テストの作成
テストの実行→テストエクスプローラーが開く
メニューのテスト→LiveUnitTesting...テストでのエラーが発生している場所や、通過していないロジックも検出できる。