20141004 詰excel
DESCRIPTION
実務で出てきそうな課題に対するOffice用アプリのツカイドコロと最善手の考察TRANSCRIPT
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
2014/10/4くらもとたつし#AppsForOffice
詰ExcelOffice用アプリの
ツカイドコロ
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
くらもとたつし
発表者について
@セカンドファクトリー
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)3
UI & CLOUD Professional
コンサルトレーニング設計、開発
自社プロダクト開発
セカンドファクトリー
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)4
くらもとたつし
開発に従事
TatsushiKuramoto
@ta2c
ta2c
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)5
国内旅行
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)6
47
観光した県の数
国内旅行
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)7
4147
国内旅行観光した県の数
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)8
前回
「slideshare ta2c」でネットで検索
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)9
今回
今夜以降「slideshare ta2c」でネットで検索
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
0
データ サンプルアプリ
<お約束>サンプルに関して、万一ユーザーまたは第三者が何らかの損害を被った場合においても、一切の責任を負うことは出来ませんのでご了承ください。
http://1drv.ms/Zho851
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
1
補足:
内容は個人の見解であり所属する組織の公式見解ではありません
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
2
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
3
今日はこんな話をします
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
4
詰将棋
将棋の実践的な問題集(相手の王様を倒したら勝ち)
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
5
6 5 4 3 2 1
一
二
三
五
六
四
銀
金
玉
香
桂
角桂
歩
金桂
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
6
6 5 4 3 2 1
一
二
三
五
六
四
銀
金
玉
香
桂
角
桂歩
金桂
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
7
6 5 4 3 2 1
一
二
三
五
六
四銀
金
玉
香
桂
桂歩
金桂
2四銀角
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
8
6 5 4 3 2 1
一
二
三
五
六
四銀
金
玉
香
桂
桂
歩
金桂角
2四銀
2五桂
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
9
将棋の実践的な問題集詰将棋
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
0
Excelの実践的な問題集
将棋の実践的な問題集詰将棋
詰Excel
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
1
300件の顧客データに、●●●列を追加して。
上司
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
2
300件の顧客データに、名前列を追加して。
上司
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
3
300件の顧客データに、名前列を追加して。
上司
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
4
300件の顧客データに、名前列を追加して。
上司
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
5
300件の顧客データに、名前列を追加して。
上司
銀
D4銀
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
6
300件の顧客データに、名前列を追加して。
上司
銀
D5圭
圭
D4銀
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
7
Excelの実践的な問題集
将棋の実践的な問題集詰将棋
詰Excel
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
8
Excelの実践的な問題集詰Excel
Office用アプリの使いどころ
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
9
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)3
0
氏名(フルネーム)→名前抽出
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)3
1
300件の顧客データに、名前列を追加して。
上司
<前提>姓と名が
全角スペースで区切られている
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)3
2
岳
シンキングタイム20秒
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)3
3
[A]Excel関数 [B]Office用アプリ
岳
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)3
4
[A]Excel関数
岳
田崎 岳
全角スペースより右の文字列を取得
[B]Office用アプリ
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)3
5
全角スペースより右の文字列を取得
[A]Excel関数
[セルD2に入力]=RIGHT(C2,LEN(C2)-FIND(" ",C2,1))
岳
[B]Office用アプリ
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)3
6
[A]Excel関数 [B]Office用アプリ
岳
ドラッグ
全角スペースより右の文字列を取得
[セルD2に入力]=RIGHT(C2,LEN(C2)-FIND(" ",C2,1))
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)3
7
[A]Excel関数 [B]Office用アプリ
岳
ドラッグ
全角スペースより右の文字列を取得
[セルD2に入力]=RIGHT(C2,LEN(C2)-FIND(" ",C2,1))
DE
MO
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)3
8
[A]Excel関数 [B]Office用アプリ
岳
ダブルクリック※おすすめ
全角スペースより右の文字列を取得
[セルD2に入力]=RIGHT(C2,LEN(C2)-FIND(" ",C2,1))
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)3
9
[A]Excel関数 [B]Office用アプリ
岳
全角スペースより右の文字列を取得
左の行数分コピーされる
[セルD2に入力]=RIGHT(C2,LEN(C2)-FIND(" ",C2,1))
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)4
0
[A]Excel関数
岳
全角スペースより右の文字列を取得
[セルD2に入力]=RIGHT(C2,LEN(C2)-FIND(" ",C2,1))
[B]Office用アプリ
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)4
1
[A]Excel関数
岳
全角スペースより右の文字列を取得
[セルD2に入力]=RIGHT(C2,LEN(C2)-FIND(" ",C2,1))
[B]Office用アプリ
田崎 岳
全角スペースで分割し文字列の2番めを取る
① ②
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)4
2
[A]Excel関数
岳
全角スペースより右の文字列を取得
<C2の値>.spl i t ( " " ) [1]
[セルD2に入力]=RIGHT(C2,LEN(C2)-FIND(" ",C2,1))
[B]Office用アプリ
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)4
3
<!DOCTYPE html><html>
<head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=Edge" /><title>詰Excel</title><script src="https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js" type="text/javascript"></script><script src="https://code.jquery.com/jquery-1.11.1.min.js" type="text/javascript"></script><script>
// 変換前の2次元配列var beforeMatrix = [];// 変換後の2次元配列var afterMatrix = [];// 実行中の行番号var convertCounter = 0;
Office.initialize = function(reason) {}window.onload = function() {
var btn = document.getElementById('executeButton');btn.onclick = function () {
buttonOnClick();}// タイトルエリアを出力writeTitle(title);
}
// ボタンクリック時のイベントハンドラfunction buttonOnClick() {
writeResult('実行中');
// 選択したセル(n行x2列)の値をすべて取得Office.context.document.getSelectedDataAsync(Office.CoercionType.Matrix,
function (result) {if (result.status === Office.AsyncResultStatus.Succeeded) {
// 変換後の2次元配列afterMatrix = [];// 変換前の2次元配列beforeMatrix = result.value;
convertCounter = 0;executeConvertItem();
} else {writeResult('取得時エラー:' + result.error.message);
}}
) ;}
// 1件分変換を実行するfunction executeConvertItem() {
// 変換前のアイテムvar targetRow = beforeMatrix[convertCounter];// 左のセルvar originalValue = targetRow[0];
convertValue(originalValue, executeConvertItemCallback);}
// 1件分変換を実行したあとのコールバック関数function executeConvertItemCallback(originalValue, targetValue) {
// 変換後のアイテムvar convertRow= [originalValue, targetValue];afterMatrix.push(convertRow);
convertCounter ++;if (convertCounter >= beforeMatrix.length) {
// 変換後の値を設定updateAfterValue();
} else {// 再帰的呼び出しexecuteConvertItem();
}}
// 選択したセル(n行x2列)に変換後の値をセットfunction updateAfterValue() {
Office.context.document.setSelectedDataAsync(afterMatrix, { coercionType: "matrix" },function (result) {
if (result.status === Office.AsyncResultStatus.Succeeded) {writeResult('実行完了しました');
} else {writeResult('セット時エラー:' + result.error.message);
}}) ;
}
// タイトルエリアを出力function writeTitle(inString) {
document.getElementById('titleArea').innerHTML = inString;}// 実行結果を出力function writeResult(result) {
document.getElementById('resultArea').innerHTML = result;}
// ============================================// 個別プロパティ、メソッド// ■■■■■■■■■■■■■■■■■■■■■■var title = "case.1";function convertValue(beforeValue, inCallBack) {
// 全角スペースで文字列を分割var splitArray = beforeValue.split(" ") ;var afterValue = splitArray[1];inCallBack(beforeValue, afterValue);
}// ■■■■■■■■■■■■■■■■■■■■■■
</script></head><body>
<div id="titleArea"></div><button id="executeButton" type="button">実行</button><div id="resultArea"></div>
</body></html>
[A]Excel関数
岳
全角スペースより右の文字列を取得
[セルD2に入力]=RIGHT(C2,LEN(C2)-FIND(" ",C2,1))
[B]Office用アプリ
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)4
4
<!DOCTYPE html><html>
<head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=Edge" /><title>詰Excel</title><script src="https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js" type="text/javascript"></script><script src="https://code.jquery.com/jquery-1.11.1.min.js" type="text/javascript"></script><script>
// 変換前の2次元配列var beforeMatrix = [];// 変換後の2次元配列var afterMatrix = [];// 実行中の行番号var convertCounter = 0;
Office.initialize = function(reason) {}window.onload = function() {
var btn = document.getElementById('executeButton');btn.onclick = function () {
buttonOnClick();}// タイトルエリアを出力writeTitle(title);
}
// ボタンクリック時のイベントハンドラfunction buttonOnClick() {
writeResult('実行中');
// 選択したセル(n行x2列)の値をすべて取得Office.context.document.getSelectedDataAsync(Office.CoercionType.Matrix,
function (result) {if (result.status === Office.AsyncResultStatus.Succeeded) {
// 変換後の2次元配列afterMatrix = [];// 変換前の2次元配列beforeMatrix = result.value;
convertCounter = 0;executeConvertItem();
} else {writeResult('取得時エラー:' + result.error.message);
}}
) ;}
// 1件分変換を実行するfunction executeConvertItem() {
// 変換前のアイテムvar targetRow = beforeMatrix[convertCounter];// 左のセルvar originalValue = targetRow[0];
convertValue(originalValue, executeConvertItemCallback);}
// 1件分変換を実行したあとのコールバック関数function executeConvertItemCallback(originalValue, targetValue) {
// 変換後のアイテムvar convertRow= [originalValue, targetValue];afterMatrix.push(convertRow);
convertCounter ++;if (convertCounter >= beforeMatrix.length) {
// 変換後の値を設定updateAfterValue();
} else {// 再帰的呼び出しexecuteConvertItem();
}}
// 選択したセル(n行x2列)に変換後の値をセットfunction updateAfterValue() {
Office.context.document.setSelectedDataAsync(afterMatrix, { coercionType: "matrix" },function (result) {
if (result.status === Office.AsyncResultStatus.Succeeded) {writeResult('実行完了しました');
} else {writeResult('セット時エラー:' + result.error.message);
}}) ;
}
// タイトルエリアを出力function writeTitle(inString) {
document.getElementById('titleArea').innerHTML = inString;}// 実行結果を出力function writeResult(result) {
document.getElementById('resultArea').innerHTML = result;}
// ============================================// 個別プロパティ、メソッド// ■■■■■■■■■■■■■■■■■■■■■■var title = "case.1";function convertValue(beforeValue, inCallBack) {
// 全角スペースで文字列を分割var splitArray = beforeValue.split(" ") ;var afterValue = splitArray[1];inCallBack(beforeValue, afterValue);
}// ■■■■■■■■■■■■■■■■■■■■■■
</script></head><body>
<div id="titleArea"></div><button id="executeButton" type="button">実行</button><div id="resultArea"></div>
</body></html>
[A]Excel関数
岳
全角スペースより右の文字列を取得
100行
[セルD2に入力]=RIGHT(C2,LEN(C2)-FIND(" ",C2,1))
[B]Office用アプリ
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)4
5
[A]Excel関数 [B]Office用アプリ
2列を選択して、実行ボタンを押す
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)4
6
[A]Excel関数 [B]Office用アプリ
2列を選択して、実行ボタンを押す
太郎花子三郎
求めたい値が右列に入る
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)4
7
[セルD2]=RIGHT(C2,LEN(C2)-FIND(" ",C2,1))
全角スペースより右の文字列を取得
<!DOCTYPE html><html>
<head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=Edge" /><title>詰Excel</title><script src="https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js" type="text/javascript"></script>
<script>// 変換前の2次元配列var beforeMatrix = [];// 変換後の2次元配列var afterMatrix = [];// 実行中の行番号var convertCounter = 0;
Office.initialize = function(reason) {}window.onload = function() {
var btn = document.getElementById('executeButton');btn.onclick = function () {
buttonOnClick();}// タイトルエリアを出力writeTitle(title);
}
// ボタンクリック時のイベントハンドラfunction buttonOnClick() {
writeResult('実行中');
// 選択したセル(n行x2列)の値をすべて取得Office.context.document.getSelectedDataAsync(Office.CoercionType.Matrix,
function (result) {if (result.status === Office.AsyncResultStatus.Succeeded) {
// 変換後の2次元配列afterMatrix = [];// 変換前の2次元配列beforeMatrix = result.value;
convertCounter = 0;executeConvertItem();
} else {writeResult('取得時エラー:' + result.error.message);
}}
) ;}
// 1件分変換を実行するfunction executeConvertItem() {
// 変換前のアイテムvar targetRow = beforeMatrix[convertCounter];// 左のセルvar originalValue = targetRow[0];
convertValue(originalValue, executeConvertItemCallback);}
// 1件分変換を実行したあとのコールバック関数function executeConvertItemCallback(originalValue, targetValue) {
// 変換後のアイテムvar convertRow= [originalValue, targetValue];afterMatrix.push(convertRow);
convertCounter ++;if (convertCounter >= beforeMatrix.length) {
// 変換後の値を設定updateAfterValue();
} else {// 再帰的呼び出しexecuteConvertItem();
}}
// 選択したセル(n行x2列)に変換後の値をセットfunction updateAfterValue() {
Office.context.document.setSelectedDataAsync(afterMatrix, { coercionType: "matrix" },function (result) {
if (result.status === Office.AsyncResultStatus.Succeeded) {writeResult('実行完了しました');
} else {writeResult('セット時エラー:' + result.error.message);
}}) ;
}
// タイトルエリアを出力function writeTitle(inString) {
document.getElementById('titleArea').innerHTML = inString;}// 実行結果を出力function writeResult(result) {
document.getElementById('resultArea').innerHTML = result;}
// ============================================// 個別プロパティ、メソッド// ■■■■■■■■■■■■■■■■■■■■■■var title = "case.1";function convertValue(beforeValue, inCallBack) {
// 全角スペースで文字列を分割var splitArray = beforeValue.split(" ") ;var afterValue = splitArray[1];inCallBack(beforeValue, afterValue);
}// ■■■■■■■■■■■■■■■■■■■■■■
</script></head><body>
<div id="titleArea"></div><button id="executeButton" type="button">実行</button><div id="resultArea"></div>
</body></html>
[A]Excel関数 [B]Office用アプリ①範囲選択したn行x2列
の値群を配列でゲット
②左列から名前を抽出(Array.split(“ “)[1])
④ 範囲選択したn行x2列に配列をセット
for文で②③処理繰り返し。
③右列に名前をセット
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)4
8
[セルD2]=RIGHT(C2,LEN(C2)-FIND(" ",C2,1))
<!DOCTYPE html><html>
<head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=Edge" /><title>詰Excel</title><script src="https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js" type="text/javascript"></script>
<script>// 変換前の2次元配列var beforeMatrix = [];// 変換後の2次元配列var afterMatrix = [];// 実行中の行番号var convertCounter = 0;
Office.initialize = function(reason) {}window.onload = function() {
var btn = document.getElementById('executeButton');btn.onclick = function () {
buttonOnClick();}// タイトルエリアを出力writeTitle(title);
}
// ボタンクリック時のイベントハンドラfunction buttonOnClick() {
writeResult('実行中');
// 選択したセル(n行x2列)の値をすべて取得Office.context.document.getSelectedDataAsync(Office.CoercionType.Matrix,
function (result) {if (result.status === Office.AsyncResultStatus.Succeeded) {
// 変換後の2次元配列afterMatrix = [];// 変換前の2次元配列beforeMatrix = result.value;
convertCounter = 0;executeConvertItem();
} else {writeResult('取得時エラー:' + result.error.message);
}}
) ;}
// 1件分変換を実行するfunction executeConvertItem() {
// 変換前のアイテムvar targetRow = beforeMatrix[convertCounter];// 左のセルvar originalValue = targetRow[0];
convertValue(originalValue, executeConvertItemCallback);}
// 1件分変換を実行したあとのコールバック関数function executeConvertItemCallback(originalValue, targetValue) {
// 変換後のアイテムvar convertRow= [originalValue, targetValue];afterMatrix.push(convertRow);
convertCounter ++;if (convertCounter >= beforeMatrix.length) {
// 変換後の値を設定updateAfterValue();
} else {// 再帰的呼び出しexecuteConvertItem();
}}
// 選択したセル(n行x2列)に変換後の値をセットfunction updateAfterValue() {
Office.context.document.setSelectedDataAsync(afterMatrix, { coercionType: "matrix" },function (result) {
if (result.status === Office.AsyncResultStatus.Succeeded) {writeResult('実行完了しました');
} else {writeResult('セット時エラー:' + result.error.message);
}}) ;
}
// タイトルエリアを出力function writeTitle(inString) {
document.getElementById('titleArea').innerHTML = inString;}// 実行結果を出力function writeResult(result) {
document.getElementById('resultArea').innerHTML = result;}
// ============================================// 個別プロパティ、メソッド// ■■■■■■■■■■■■■■■■■■■■■■var title = "case.1";function convertValue(beforeValue, inCallBack) {
// 全角スペースで文字列を分割var splitArray = beforeValue.split(" ") ;var afterValue = splitArray[1];inCallBack(beforeValue, afterValue);
}// ■■■■■■■■■■■■■■■■■■■■■■
</script></head><body>
<div id="titleArea"></div><button id="executeButton" type="button">実行</button><div id="resultArea"></div>
</body></html>
[A]Excel関数 [B]Office用アプリ①範囲選択したn行x2列
の値群を配列でゲット
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)4
9
[セルD2]=RIGHT(C2,LEN(C2)-FIND(" ",C2,1))
<!DOCTYPE html><html>
<head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=Edge" /><title>詰Excel</title><script src="https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js" type="text/javascript"></script>
<script>// 変換前の2次元配列var beforeMatrix = [];// 変換後の2次元配列var afterMatrix = [];// 実行中の行番号var convertCounter = 0;
Office.initialize = function(reason) {}window.onload = function() {
var btn = document.getElementById('executeButton');btn.onclick = function () {
buttonOnClick();}// タイトルエリアを出力writeTitle(title);
}
// ボタンクリック時のイベントハンドラfunction buttonOnClick() {
writeResult('実行中');
// 選択したセル(n行x2列)の値をすべて取得Office.context.document.getSelectedDataAsync(Office.CoercionType.Matrix,
function (result) {if (result.status === Office.AsyncResultStatus.Succeeded) {
// 変換後の2次元配列afterMatrix = [];// 変換前の2次元配列beforeMatrix = result.value;
convertCounter = 0;executeConvertItem();
} else {writeResult('取得時エラー:' + result.error.message);
}}
) ;}
// 1件分変換を実行するfunction executeConvertItem() {
// 変換前のアイテムvar targetRow = beforeMatrix[convertCounter];// 左のセルvar originalValue = targetRow[0];
convertValue(originalValue, executeConvertItemCallback);}
// 1件分変換を実行したあとのコールバック関数function executeConvertItemCallback(originalValue, targetValue) {
// 変換後のアイテムvar convertRow= [originalValue, targetValue];afterMatrix.push(convertRow);
convertCounter ++;if (convertCounter >= beforeMatrix.length) {
// 変換後の値を設定updateAfterValue();
} else {// 再帰的呼び出しexecuteConvertItem();
}}
// 選択したセル(n行x2列)に変換後の値をセットfunction updateAfterValue() {
Office.context.document.setSelectedDataAsync(afterMatrix, { coercionType: "matrix" },function (result) {
if (result.status === Office.AsyncResultStatus.Succeeded) {writeResult('実行完了しました');
} else {writeResult('セット時エラー:' + result.error.message);
}}) ;
}
// タイトルエリアを出力function writeTitle(inString) {
document.getElementById('titleArea').innerHTML = inString;}// 実行結果を出力function writeResult(result) {
document.getElementById('resultArea').innerHTML = result;}
// ============================================// 個別プロパティ、メソッド// ■■■■■■■■■■■■■■■■■■■■■■var title = "case.1";function convertValue(beforeValue, inCallBack) {
// 全角スペースで文字列を分割var splitArray = beforeValue.split(" ") ;var afterValue = splitArray[1];inCallBack(beforeValue, afterValue);
}// ■■■■■■■■■■■■■■■■■■■■■■
</script></head><body>
<div id="titleArea"></div><button id="executeButton" type="button">実行</button><div id="resultArea"></div>
</body></html>
[A]Excel関数 [B]Office用アプリ①範囲選択したn行x2列
の値群を配列でゲット
Office.context.document.getSelectedDataAsync(Office.CoercionType.Matrix, コールバック関数);
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)5
0
[セルD2]=RIGHT(C2,LEN(C2)-FIND(" ",C2,1))
<!DOCTYPE html><html>
<head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=Edge" /><title>詰Excel</title><script src="https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js" type="text/javascript"></script>
<script>// 変換前の2次元配列var beforeMatrix = [];// 変換後の2次元配列var afterMatrix = [];// 実行中の行番号var convertCounter = 0;
Office.initialize = function(reason) {}window.onload = function() {
var btn = document.getElementById('executeButton');btn.onclick = function () {
buttonOnClick();}// タイトルエリアを出力writeTitle(title);
}
// ボタンクリック時のイベントハンドラfunction buttonOnClick() {
writeResult('実行中');
// 選択したセル(n行x2列)の値をすべて取得Office.context.document.getSelectedDataAsync(Office.CoercionType.Matrix,
function (result) {if (result.status === Office.AsyncResultStatus.Succeeded) {
// 変換後の2次元配列afterMatrix = [];// 変換前の2次元配列beforeMatrix = result.value;
convertCounter = 0;executeConvertItem();
} else {writeResult('取得時エラー:' + result.error.message);
}}
) ;}
// 1件分変換を実行するfunction executeConvertItem() {
// 変換前のアイテムvar targetRow = beforeMatrix[convertCounter];// 左のセルvar originalValue = targetRow[0];
convertValue(originalValue, executeConvertItemCallback);}
// 1件分変換を実行したあとのコールバック関数function executeConvertItemCallback(originalValue, targetValue) {
// 変換後のアイテムvar convertRow= [originalValue, targetValue];afterMatrix.push(convertRow);
convertCounter ++;if (convertCounter >= beforeMatrix.length) {
// 変換後の値を設定updateAfterValue();
} else {// 再帰的呼び出しexecuteConvertItem();
}}
// 選択したセル(n行x2列)に変換後の値をセットfunction updateAfterValue() {
Office.context.document.setSelectedDataAsync(afterMatrix, { coercionType: "matrix" },function (result) {
if (result.status === Office.AsyncResultStatus.Succeeded) {writeResult('実行完了しました');
} else {writeResult('セット時エラー:' + result.error.message);
}}) ;
}
// タイトルエリアを出力function writeTitle(inString) {
document.getElementById('titleArea').innerHTML = inString;}// 実行結果を出力function writeResult(result) {
document.getElementById('resultArea').innerHTML = result;}
// ============================================// 個別プロパティ、メソッド// ■■■■■■■■■■■■■■■■■■■■■■var title = "case.1";function convertValue(beforeValue, inCallBack) {
// 全角スペースで文字列を分割var splitArray = beforeValue.split(" ") ;var afterValue = splitArray[1];inCallBack(beforeValue, afterValue);
}// ■■■■■■■■■■■■■■■■■■■■■■
</script></head><body>
<div id="titleArea"></div><button id="executeButton" type="button">実行</button><div id="resultArea"></div>
</body></html>
[A]Excel関数 [B]Office用アプリ①範囲選択したn行x2列
の値群を配列でゲット
Office.context.document.getSelectedDataAsync(Office.CoercionType.Matrix, コールバック関数);
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)5
1
[セルD2]=RIGHT(C2,LEN(C2)-FIND(" ",C2,1))
全角スペースより右の文字列を取得
<!DOCTYPE html><html>
<head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=Edge" /><title>詰Excel</title><script src="https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js" type="text/javascript"></script>
<script>// 変換前の2次元配列var beforeMatrix = [];// 変換後の2次元配列var afterMatrix = [];// 実行中の行番号var convertCounter = 0;
Office.initialize = function(reason) {}window.onload = function() {
var btn = document.getElementById('executeButton');btn.onclick = function () {
buttonOnClick();}// タイトルエリアを出力writeTitle(title);
}
// ボタンクリック時のイベントハンドラfunction buttonOnClick() {
writeResult('実行中');
// 選択したセル(n行x2列)の値をすべて取得Office.context.document.getSelectedDataAsync(Office.CoercionType.Matrix,
function (result) {if (result.status === Office.AsyncResultStatus.Succeeded) {
// 変換後の2次元配列afterMatrix = [];// 変換前の2次元配列beforeMatrix = result.value;
convertCounter = 0;executeConvertItem();
} else {writeResult('取得時エラー:' + result.error.message);
}}
) ;}
// 1件分変換を実行するfunction executeConvertItem() {
// 変換前のアイテムvar targetRow = beforeMatrix[convertCounter];// 左のセルvar originalValue = targetRow[0];
convertValue(originalValue, executeConvertItemCallback);}
// 1件分変換を実行したあとのコールバック関数function executeConvertItemCallback(originalValue, targetValue) {
// 変換後のアイテムvar convertRow= [originalValue, targetValue];afterMatrix.push(convertRow);
convertCounter ++;if (convertCounter >= beforeMatrix.length) {
// 変換後の値を設定updateAfterValue();
} else {// 再帰的呼び出しexecuteConvertItem();
}}
// 選択したセル(n行x2列)に変換後の値をセットfunction updateAfterValue() {
Office.context.document.setSelectedDataAsync(afterMatrix, { coercionType: "matrix" },function (result) {
if (result.status === Office.AsyncResultStatus.Succeeded) {writeResult('実行完了しました');
} else {writeResult('セット時エラー:' + result.error.message);
}}) ;
}
// タイトルエリアを出力function writeTitle(inString) {
document.getElementById('titleArea').innerHTML = inString;}// 実行結果を出力function writeResult(result) {
document.getElementById('resultArea').innerHTML = result;}
// ============================================// 個別プロパティ、メソッド// ■■■■■■■■■■■■■■■■■■■■■■var title = "case.1";function convertValue(beforeValue, inCallBack) {
// 全角スペースで文字列を分割var splitArray = beforeValue.split(" ") ;var afterValue = splitArray[1];inCallBack(beforeValue, afterValue);
}// ■■■■■■■■■■■■■■■■■■■■■■
</script></head><body>
<div id="titleArea"></div><button id="executeButton" type="button">実行</button><div id="resultArea"></div>
</body></html>
[A]Excel関数 [B]Office用アプリ
②左列から名前を抽出(Array.split(“ “)[1])
③右列に名前をセット
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ”太郎”],[“鈴木 花子” , ”花子”],[“斉藤 三郎” , ”三郎”]
]
for文で②③処理繰り返し。
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)5
2
[セルD2]=RIGHT(C2,LEN(C2)-FIND(" ",C2,1))
<!DOCTYPE html><html>
<head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=Edge" /><title>詰Excel</title><script src="https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js" type="text/javascript"></script>
<script>// 変換前の2次元配列var beforeMatrix = [];// 変換後の2次元配列var afterMatrix = [];// 実行中の行番号var convertCounter = 0;
Office.initialize = function(reason) {}window.onload = function() {
var btn = document.getElementById('executeButton');btn.onclick = function () {
buttonOnClick();}// タイトルエリアを出力writeTitle(title);
}
// ボタンクリック時のイベントハンドラfunction buttonOnClick() {
writeResult('実行中');
// 選択したセル(n行x2列)の値をすべて取得Office.context.document.getSelectedDataAsync(Office.CoercionType.Matrix,
function (result) {if (result.status === Office.AsyncResultStatus.Succeeded) {
// 変換後の2次元配列afterMatrix = [];// 変換前の2次元配列beforeMatrix = result.value;
convertCounter = 0;executeConvertItem();
} else {writeResult('取得時エラー:' + result.error.message);
}}
) ;}
// 1件分変換を実行するfunction executeConvertItem() {
// 変換前のアイテムvar targetRow = beforeMatrix[convertCounter];// 左のセルvar originalValue = targetRow[0];
convertValue(originalValue, executeConvertItemCallback);}
// 1件分変換を実行したあとのコールバック関数function executeConvertItemCallback(originalValue, targetValue) {
// 変換後のアイテムvar convertRow= [originalValue, targetValue];afterMatrix.push(convertRow);
convertCounter ++;if (convertCounter >= beforeMatrix.length) {
// 変換後の値を設定updateAfterValue();
} else {// 再帰的呼び出しexecuteConvertItem();
}}
// 選択したセル(n行x2列)に変換後の値をセットfunction updateAfterValue() {
Office.context.document.setSelectedDataAsync(afterMatrix, { coercionType: "matrix" },function (result) {
if (result.status === Office.AsyncResultStatus.Succeeded) {writeResult('実行完了しました');
} else {writeResult('セット時エラー:' + result.error.message);
}}) ;
}
// タイトルエリアを出力function writeTitle(inString) {
document.getElementById('titleArea').innerHTML = inString;}// 実行結果を出力function writeResult(result) {
document.getElementById('resultArea').innerHTML = result;}
// ============================================// 個別プロパティ、メソッド// ■■■■■■■■■■■■■■■■■■■■■■var title = "case.1";function convertValue(beforeValue, inCallBack) {
// 全角スペースで文字列を分割var splitArray = beforeValue.split(" ") ;var afterValue = splitArray[1];inCallBack(beforeValue, afterValue);
}// ■■■■■■■■■■■■■■■■■■■■■■
</script></head><body>
<div id="titleArea"></div><button id="executeButton" type="button">実行</button><div id="resultArea"></div>
</body></html>
[A]Excel関数 [B]Office用アプリ④ 範囲選択したn行x2列に配列をセット
Office.context.document.setSelectedDataAsync(afterMatrix, { coercionType: “matrix” }, コールバック関数);
[[“山田 太郎” , ”太郎”],[“鈴木 花子” , ”花子”],[“斉藤 三郎” , ”三郎”]
]
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)5
3
[セルD2]=RIGHT(C2,LEN(C2)-FIND(" ",C2,1))
<!DOCTYPE html><html>
<head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=Edge" /><title>詰Excel</title><script src="https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js" type="text/javascript"></script>
<script>// 変換前の2次元配列var beforeMatrix = [];// 変換後の2次元配列var afterMatrix = [];// 実行中の行番号var convertCounter = 0;
Office.initialize = function(reason) {}window.onload = function() {
var btn = document.getElementById('executeButton');btn.onclick = function () {
buttonOnClick();}// タイトルエリアを出力writeTitle(title);
}
// ボタンクリック時のイベントハンドラfunction buttonOnClick() {
writeResult('実行中');
// 選択したセル(n行x2列)の値をすべて取得Office.context.document.getSelectedDataAsync(Office.CoercionType.Matrix,
function (result) {if (result.status === Office.AsyncResultStatus.Succeeded) {
// 変換後の2次元配列afterMatrix = [];// 変換前の2次元配列beforeMatrix = result.value;
convertCounter = 0;executeConvertItem();
} else {writeResult('取得時エラー:' + result.error.message);
}}
) ;}
// 1件分変換を実行するfunction executeConvertItem() {
// 変換前のアイテムvar targetRow = beforeMatrix[convertCounter];// 左のセルvar originalValue = targetRow[0];
convertValue(originalValue, executeConvertItemCallback);}
// 1件分変換を実行したあとのコールバック関数function executeConvertItemCallback(originalValue, targetValue) {
// 変換後のアイテムvar convertRow= [originalValue, targetValue];afterMatrix.push(convertRow);
convertCounter ++;if (convertCounter >= beforeMatrix.length) {
// 変換後の値を設定updateAfterValue();
} else {// 再帰的呼び出しexecuteConvertItem();
}}
// 選択したセル(n行x2列)に変換後の値をセットfunction updateAfterValue() {
Office.context.document.setSelectedDataAsync(afterMatrix, { coercionType: "matrix" },function (result) {
if (result.status === Office.AsyncResultStatus.Succeeded) {writeResult('実行完了しました');
} else {writeResult('セット時エラー:' + result.error.message);
}}) ;
}
// タイトルエリアを出力function writeTitle(inString) {
document.getElementById('titleArea').innerHTML = inString;}// 実行結果を出力function writeResult(result) {
document.getElementById('resultArea').innerHTML = result;}
// ============================================// 個別プロパティ、メソッド// ■■■■■■■■■■■■■■■■■■■■■■var title = "case.1";function convertValue(beforeValue, inCallBack) {
// 全角スペースで文字列を分割var splitArray = beforeValue.split(" ") ;var afterValue = splitArray[1];inCallBack(beforeValue, afterValue);
}// ■■■■■■■■■■■■■■■■■■■■■■
</script></head><body>
<div id="titleArea"></div><button id="executeButton" type="button">実行</button><div id="resultArea"></div>
</body></html>
[A]Excel関数 [B]Office用アプリ④ 範囲選択したn行x2列に配列をセット
Office.context.document.setSelectedDataAsync(afterMatrix, { coercionType: “matrix” }, コールバック関数);
[[“山田 太郎” , ”太郎”],[“鈴木 花子” , ”花子”],[“斉藤 三郎” , ”三郎”]
]
太郎花子三郎
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)5
4
[セルD2]=RIGHT(C2,LEN(C2)-FIND(" ",C2,1))
<!DOCTYPE html><html>
<head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=Edge" /><title>詰Excel</title><script src="https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js" type="text/javascript"></script>
<script>// 変換前の2次元配列var beforeMatrix = [];// 変換後の2次元配列var afterMatrix = [];// 実行中の行番号var convertCounter = 0;
Office.initialize = function(reason) {}window.onload = function() {
var btn = document.getElementById('executeButton');btn.onclick = function () {
buttonOnClick();}// タイトルエリアを出力writeTitle(title);
}
// ボタンクリック時のイベントハンドラfunction buttonOnClick() {
writeResult('実行中');
// 選択したセル(n行x2列)の値をすべて取得Office.context.document.getSelectedDataAsync(Office.CoercionType.Matrix,
function (result) {if (result.status === Office.AsyncResultStatus.Succeeded) {
// 変換後の2次元配列afterMatrix = [];// 変換前の2次元配列beforeMatrix = result.value;
convertCounter = 0;executeConvertItem();
} else {writeResult('取得時エラー:' + result.error.message);
}}
) ;}
// 1件分変換を実行するfunction executeConvertItem() {
// 変換前のアイテムvar targetRow = beforeMatrix[convertCounter];// 左のセルvar originalValue = targetRow[0];
convertValue(originalValue, executeConvertItemCallback);}
// 1件分変換を実行したあとのコールバック関数function executeConvertItemCallback(originalValue, targetValue) {
// 変換後のアイテムvar convertRow= [originalValue, targetValue];afterMatrix.push(convertRow);
convertCounter ++;if (convertCounter >= beforeMatrix.length) {
// 変換後の値を設定updateAfterValue();
} else {// 再帰的呼び出しexecuteConvertItem();
}}
// 選択したセル(n行x2列)に変換後の値をセットfunction updateAfterValue() {
Office.context.document.setSelectedDataAsync(afterMatrix, { coercionType: "matrix" },function (result) {
if (result.status === Office.AsyncResultStatus.Succeeded) {writeResult('実行完了しました');
} else {writeResult('セット時エラー:' + result.error.message);
}}) ;
}
// タイトルエリアを出力function writeTitle(inString) {
document.getElementById('titleArea').innerHTML = inString;}// 実行結果を出力function writeResult(result) {
document.getElementById('resultArea').innerHTML = result;}
// ============================================// 個別プロパティ、メソッド// ■■■■■■■■■■■■■■■■■■■■■■var title = "case.1";function convertValue(beforeValue, inCallBack) {
// 全角スペースで文字列を分割var splitArray = beforeValue.split(" ") ;var afterValue = splitArray[1];inCallBack(beforeValue, afterValue);
}// ■■■■■■■■■■■■■■■■■■■■■■
</script></head><body>
<div id="titleArea"></div><button id="executeButton" type="button">実行</button><div id="resultArea"></div>
</body></html>
[A]Excel関数 [B]Office用アプリ④ 範囲選択したn行x2列に配列をセット
Office.context.document.setSelectedDataAsync(afterMatrix, { coercionType: “matrix” }, コールバック関数);
[[“山田 太郎” , ”太郎”],[“鈴木 花子” , ”花子”],[“斉藤 三郎” , ”三郎”]
]
太郎花子三郎
DE
MO
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)5
5
[A]Excel関数①範囲選択したn行x2列
の値群を配列でゲット
④ 範囲選択したn行x2列に配列をセット
②左列から名前を抽出
for文で②③処理繰り返し
③右列に名前をセット
岳
[セルD2に入力] =RIGHT(C2,LEN(C2)-FIND(" ",C2,1))
全角スペースより右の文字列を取得
[B]Office用アプリ
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)5
6
[A] Excel関数 [B]Office用アプリ
○(1行で終わり) 1から作る △(コード量多い+Webサーバ必要)
岳
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)5
7
[A] Excel関数 [B]Office用アプリ
○(1行で終わり) 1から作る △(コード量多い+Webサーバ必要)
◎(変更に追従) 誰かが作ったものを使う
○(変更に追従しない
岳
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)5
8
[A] Excel関数 [B]Office用アプリ
○(1行で終わり) 1から作る △(コード量多い+Webサーバ必要)
◎(変更に追従) 誰かが作ったものを使う
○(変更に追従しない
岳
田崎 今日子 今日子
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)5
9
[A] Excel関数 [B]Office用アプリ
○(1行で終わり) 1から作る △(コード量多い+Webサーバ必要)
◎(変更に追従) 誰かが作ったものを使う
○(変更に追従しない
・右記以外は[A]Excel関数使ったほうがよい。
ツカイドコロ ・あるOffice用アプリの一部の機能・Wordで使う
岳
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)6
0
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)6
1
※今日のOffice用アプリ動かしてみたい
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)6
2
[A]VisualStudio 2013(有償版)を使う
(Professional以上)
[B]無料で頑張る
※今日のOffice用アプリ動かしてみたい
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)6
3
[A]VisualStudio 2013(有償版)を使う
[B]無料で頑張る
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)6
4
[A]VisualStudio 2013(有償版)を使う
[B]無料で頑張る
マニフェストXML
html
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)6
5
[A]VisualStudio 2013(有償版)を使う
[B]無料で頑張る
1. 今日の提供ソースのうち、htmlのみ用意
マニフェストXML
html
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)6
6
[A]VisualStudio 2013(有償版)を使う
[B]無料で頑張る
2. Visual Studio 2013 とUpdate3をインストール
• ※参考Visual Studio 2013 90 日間の無償評価版
http://www.visualstudio.com/ja-jp/downloads/download-visual-studio-vs#DownloadFamilies_1• Visual Studio 2013 Update3http://www.microsoft.com/ja-jp/download/details.aspx?id=43721
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)6
7
[B]無料で頑張る
3. Visual Studio 2013を起動。4. 新しいプロジェクト>Office 用アプリを選択
[A]VisualStudio 2013(有償版)を使う
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)6
8
[B]無料で頑張る
5. 「次へ」「次へ」
[A]VisualStudio 2013(有償版)を使う
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)6
9
[B]無料で頑張る
5. 「次へ」「次へ」
[A]VisualStudio 2013(有償版)を使う
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)7
0
[B]無料で頑張る[A]VisualStudio 2013(有償版)を使う
6. App¥Home¥Home.htmlを開き、今日のhtmlソースで全行差し替え。
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)7
1
[B]無料で頑張る[A]VisualStudio 2013(有償版)を使う
6. App¥Home¥Home.htmlを開き、今日のhtmlソースで全行差し替え。
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)7
2
[B]無料で頑張る[A]VisualStudio 2013(有償版)を使う
7. 開始ボタン(F5キー)クリック
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)7
3
[B]無料で頑張る[A]VisualStudio 2013(有償版)を使う
8. セキュリティの警告は「はい」押下
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)7
4
[B]無料で頑張る[A]VisualStudio 2013(有償版)を使う
9. 動いた~
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)7
5
[B]無料で頑張る[A]VisualStudio 2013(有償版)を使う
9. 動いた~
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)7
6
[B]無料で頑張る[A]VisualStudio 2013(有償版)を使う
9. 動いた~
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)7
7
[A]VisualStudio 2013(有償版)を使う
[B]無料で頑張る
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)7
8
[A]VisualStudio 2013(有償版)を使う
マニフェストXML
html
1. 今日の提供ソース2つ両方
[B]無料で頑張る
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)7
9
[A]VisualStudio 2013(有償版)を使う
マニフェストXML
html
1. 今日の提供ソース2つ両方
[B]無料で頑張る
日経ソフトウエア: Office用アプリ開発入門第2回 はじめてのOffice用アプリ(きぬあささん著)http://itpro.nikkeibp.co.jp/article/COLUMN/20140313/543266/
2. 下のURLを参考に、設定をがんばる。
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)8
0
[A]VisualStudio 2013(有償版)を使う
マニフェストXML
html
1. 今日の提供ソース2つ両方と、共有フォルダ、Webサーバを用意。
Webサーバ (例:http://localhost/)
[B]無料で頑張る
共有フォルダ (例:¥¥devpc¥apps)
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)8
1
[A]VisualStudio 2013(有償版)を使う
マニフェストXML
html
2. 二つのファイルを下記のように配置。
共有フォルダ
Webサーバ
[B]無料で頑張る
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)8
2
[A]VisualStudio 2013(有償版)を使う
3. Excelの設定でマニフェストXMLを関連付ける
[B]無料で頑張る
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)8
3
[A]VisualStudio 2013(有償版)を使う
4. アプリインストール
[B]無料で頑張る
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)8
4
[A]VisualStudio 2013(有償版)を使う
4. アプリインストール
[B]無料で頑張る
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)8
5
[A]VisualStudio 2013(有償版)を使う
5. 動いた~
[B]無料で頑張る
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)8
6
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)8
7
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)8
8
300件の顧客データに、●●●列を追加して。
上司
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)8
9
300件の顧客データに、年齢列を追加して。
上司
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)9
0
生年月日→年齢
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)9
1
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)9
2
29
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)9
3
29
シンキングタイム20秒
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)9
4
[A]Excel関数 [B]Office用アプリ
29
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)9
5
[A]Excel関数 [B]Office用アプリ
誕生日から今日までの期間を取得
誕生日から今日までの期間を取得
29
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)9
6
[A]Excel関数 [B]Office用アプリ
[セルF2]=DATEDIF (E2, TODAY(), "Y")
誕生日から今日までの期間を取得
誕生日から今日までの期間を取得
29
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)9
7
[A]Excel関数 [B]Office用アプリ
[セルF2]=DATEDIF (E2, TODAY(), "Y")
誕生日から今日までの期間を取得
誕生日から今日までの期間を取得
29
DE
MO
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)9
8
[A]Excel関数 [B]Office用アプリ
[セルF2]=DATEDIF (E2, TODAY(), "Y")
誕生日から今日までの期間を取得
誕生日から今日までの期間を取得
29
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
①範囲選択したn行x2列の値群を配列でゲット
Office.context.document.getSelectedDataAsync(Office.CoercionType.Matrix, コールバック関数);
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)9
9
[A]Excel関数 [B]Office用アプリ
[セルF2]=DATEDIF (E2, TODAY(), "Y")
誕生日から今日までの期間を取得
誕生日から今日までの期間を取得
29
②左列から名前を抽出(Array.split(“ “)[1])
③右列に名前をセット
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ”太郎”],[“鈴木 花子” , ”花子”],[“斉藤 三郎” , ”三郎”]
]
for文で②③処理繰り返し。
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
00
[A]Excel関数 [B]Office用アプリ
[セルF2]=DATEDIF (E2, TODAY(), "Y")
誕生日から今日までの期間を取得
誕生日から今日までの期間を取得
29
[[“1985/9/26” , ””],[“1944/6/24” , ””],[“2007/7/12” , ””]
]
[[“1985/9/26” , ”29”],[“1944/6/24” , ”70”],[“2007/7/12” , ”7”]
]
②左列から年齢を計算
③右列に年齢をセット
for文で②③処理繰り返し。①範囲選択を配列でゲット
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
01
[A]Excel関数 [B]Office用アプリ
[セルF2]=DATEDIF (E2, TODAY(), "Y")
誕生日から今日までの期間を取得
誕生日から今日までの期間を取得
29
[[“1985/9/26” , ””],[“1944/6/24” , ””],[“2007/7/12” , ””]
]
②左列から年齢を計算
③右列に年齢をセット
for文で②③処理繰り返し。①範囲選択を配列でゲット
[[“1985/9/26” , ”29”],[“1944/6/24” , ”70”],[“2007/7/12” , ”7”]
]
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
02
[A]Excel関数 [B]Office用アプリ
[セルF2]=DATEDIF (E2, TODAY(), "Y")
誕生日から今日までの期間を取得
誕生日から今日までの期間を取得
29
②左列から年齢を計算
③右列に年齢をセット
for文で②③処理繰り返し。①範囲選択を配列でゲット
[[31316 , ””],[16247 , ””],[39275 , ””]
]
[[“1985/9/26” , ”29”],[“1944/6/24” , ”70”],[“2007/7/12” , ”7”]
]
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
03
[A]Excel関数 [B]Office用アプリ
[セルF2]=DATEDIF (E2, TODAY(), "Y")
誕生日から今日までの期間を取得
誕生日から今日までの期間を取得
29
[[31316 , ””],[16247 , ””],[39275 , ””]
]
②左列から年齢を計算
③右列に年齢をセット
for文で②③処理繰り返し。1900/1/1からの経過日数
[[“1985/9/26” , ”29”],[“1944/6/24” , ”70”],[“2007/7/12” , ”7”]
]
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
04
[A]Excel関数 [B]Office用アプリ
[セルF2]=DATEDIF (E2, TODAY(), "Y")
誕生日から今日までの期間を取得
誕生日から今日までの期間を取得
28
[[31316 , ””],[16247 , ””],[39275 , ””]
]
[[“1985/9/26” , ”28”],[“1980/1/5” , ”70”],[“1970/11/15” , ”7”]
]
②左列から年齢を計算
③右列に年齢をセット
for文で②③処理繰り返し。
書式設定
日付→数値
1900/1/1からの経過日数
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
05
[A]Excel関数 [B]Office用アプリ
[セルF2]=DATEDIF (E2, TODAY(), "Y")
誕生日から今日までの期間を取得
誕生日から今日までの期間を取得
29
[[31316 , ””],[16247 , ””],[39275 , ””]
]
1900/1/1からの経過日数
[[“1985/9/26” , ”29”],[“1944/6/24” , ”70”],[“2007/7/12” , ”7”]
]
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
06
[A]Excel関数 [B]Office用アプリ
[セルF2]=DATEDIF (E2, TODAY(), "Y")
誕生日から今日までの期間を取得
誕生日から今日までの期間を取得
29
[[31316 , ””],[16247 , ””],[39275 , ””]
]
②左列(経過日数)を日付に変換
④右列に年齢をセット
for文で②③④処理繰り返し。1900/1/1からの
経過日数
[[“1985/9/26” , ”29”],[“1944/6/24” , ”70”],[“2007/7/12” , ”7”]
]
③日付から年齢を計算
[[“1985/9/26” , ””],[“1944/6/24” , ””],[“2007/7/12” , ””]
]
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
07
[A]Excel関数 [B]Office用アプリ
[セルF2]=DATEDIF (E2, TODAY() ,"Y")
第1引数から第2引数までの
期間を返却
28var theDate = covertSerialValueToDate (31316);
// (左列)をDate型に変換function covertSerialValueToDate(inDateTime) {
var excelDateTimeSerialValue = inDateTime;var oneDayInMilliseconds = 86400000;var excelOriginDateInMilliseconds = new Date(1899, 11, 31).getTime();var val1 = Math.floor(excelDateTimeSerialValue); // Excelシリアル値の整数
部分var val2 = excelDateTimeSerialValue - val1; // Excelシリアル値の小数部分var day = oneDayInMilliseconds * (val1 - 1);var time = oneDayInMilliseconds * val2;var dateTime = day + time + excelOriginDateInMilliseconds;var result = new Date();result.setTime(dateTime);return result;
}※参考:http://origin809.wordpress.com/2013/12/10/first-step-of-apps-for-office/
②左列(経過日数)を日付に変換 31316→ “1985/9/26”
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
08
[A]Excel関数 [B]Office用アプリ
[セルF2]=DATEDIF (E2, TODAY() ,"Y")
第1引数から第2引数までの
期間を返却
28// 今日からの経過日数をDate型に変換
var diffDate = new Date(new Date() – [生年月日のDate型]);
// 年齢を算出var age = diffDate.getUTCFullYear() - 1970;
※参考:Javascriptで誕生日から現在の年齢を算出http://qiita.com/n0bisuke/items/dd537bd4cbe9ab501ce8
③日付から年齢を計算
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
09
[A]Excel関数 [B]Office用アプリ
[セルF2]=DATEDIF (E2, TODAY() ,"Y")
第1引数から第2引数までの
期間を返却
28// 今日からの経過日数をDate型に変換
var diffDate = new Date(new Date() – [生年月日のDate型]);
// 年齢を算出var age = diffDate.getUTCFullYear() - 1970;
※参考:Javascriptで誕生日から現在の年齢を算出http://qiita.com/n0bisuke/items/dd537bd4cbe9ab501ce8
③日付から年齢を計算 DE
MO
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
10
[A]Excel関数 [B]Office用アプリ
[セルF2]=DATEDIF (E2, TODAY(), "Y")
①範囲選択したn行x2列の値群を配列でゲット
⑤ 範囲選択したn行x2列に配列をセット
②左列を日付に変換
for文で②③④処理繰り返し
④右列に年齢をセット
③日付から年齢を計算
誕生日から今日までの期間を取得
29
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
11
[A] Excel関数 [B]Office用アプリ
○(1行で終わり) 1から作る △(コード量多い+Webサーバ必要)
◎(変更に追従) 誰かが作ったものを使う
○(変更に追従しない
・右記以外は[A]Excel関数使ったほうがよい。
ツカイドコロ ・あるOffice用アプリの一部の機能・Wordで使う
29
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
12
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
13
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
14
300件の顧客データに、●●●列を追加して。
上司
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
15
300件の顧客データに、氏名のふりがな列を追加して。
上司
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
16
300件の顧客データに、氏名のふりがな列を追加して。
上司
ひらがなで。
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
17
300件の顧客データに、氏名のふりがな列を追加して。
上司
<前提>姓と名が
全角スペースで区切られている
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
18
氏名(フルネーム)→ふりがな
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
19
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
20
たざき がく
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
21
たざき がく
シンキングタイム20秒
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
22
たざき がく
[A]Excel関数 [B]Office用アプリ
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
23
たざき がく
[A]Excel関数 [B]Office用アプリ
できるの?ネットに問合せすれば
できるかも?
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
24
たざき がく
[A]Excel関数 [B]Office用アプリ
ふりがな取得関数を使う
[セルD2]=PHONETIC (C2)
ネットに問合せすればできるかも?
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
25
たざき がく
[A]Excel関数 [B]Office用アプリ
ふりがな取得関数を使う
[セルD2]=PHONETIC (C2)
・“ふりがなの設定”で種類を[ひらがな]にする。
ネットに問合せすればできるかも?
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
26
たざき がく
[A]Excel関数 [B]Office用アプリ
ふりがな取得関数を使う
ネットに問合せすればできるかも?
[セルD2]=PHONETIC (C2)
・“ふりがなの設定”で種類を[ひらがな]にする。
1. 氏名のセルを選択
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
27
たざき がく
[A]Excel関数 [B]Office用アプリ
ふりがな取得関数を使う
ネットに問合せすればできるかも?
[セルD2]=PHONETIC (C2)
・“ふりがなの設定”で種類を[ひらがな]にする。
2. ふりがなの設定をクリック
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
28
たざき がく
[A]Excel関数 [B]Office用アプリ
ふりがな取得関数を使う
ネットに問合せすればできるかも?
[セルD2]=PHONETIC (C2)
・“ふりがなの設定”で種類を[ひらがな]にする。
3. 種類で[ひらがな]を選択。
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
29
たざき がく
[A]Excel関数 [B]Office用アプリ
ふりがな取得関数を使う
ネットに問合せすればできるかも?
[セルD2]=PHONETIC (C2)
・“ふりがなの設定”で種類を[ひらがな]にする。
4. ひらがなになる
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
30
たざき がく
[A]Excel関数 [B]Office用アプリ
ふりがな取得関数を使う
[セルD2]=PHONETIC (C2)
・“ふりがなの設定”で種類を[ひらがな]にする。
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
31
たざき がく
[A]Excel関数 [B]Office用アプリ
ふりがな取得関数を使う
[セルD2]=PHONETIC (C2)
・“ふりがなの設定”で種類を[ひらがな]にする。
★弱点あり。
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
32
たざき がく
[A]Excel関数 [B]Office用アプリ
ふりがな取得関数を使う
[セルD2]=PHONETIC (C2)
・“ふりがなの設定”で種類を[ひらがな]にする。
★弱点あり。
・フリガナ情報を持たないExcelファイルには使えません。
(例:CSV)
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
33
たざき がく
[A]Excel関数 [B]Office用アプリ
ふりがな取得関数を使う
[セルD2]=PHONETIC (C2)
・“ふりがなの設定”で種類を[ひらがな]にする。
★弱点あり。
・フリガナ情報を持たないExcelファイルには使えません。
(例:CSV)
DE
MO
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
34
たざき がく
[A]Excel関数 [B]Office用アプリ
ふりがな取得関数を使う
[セルD2]=PHONETIC (C2)
・“ふりがなの設定”で種類を[ひらがな]にする。
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
35
たざき がく
[A]Excel関数 [B]Office用アプリ
ふりがな取得関数を使う
[セルD2]=PHONETIC (C2)
・“ふりがなの設定”で種類を[ひらがな]にする。
ネットに問合せすればできるかも?
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
36
たざき がく
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
①範囲選択したn行x2列の値群を配列でゲット
Office.context.document.getSelectedDataAsync(Office.CoercionType.Matrix, コールバック関数);
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]
]
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
37
たざき がく
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]
]
Yahooルビ振り
API
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
38
たざき がく
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]
]
Yahooルビ振り
API
Yahooルビ振りAPI
http://developer.yahoo.co.jp/webapi/jlp/furigana/v1/furigana.html
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
39
たざき がく
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]
]
Yahooルビ振り
API
Yahooルビ振りAPI
① Yahoo! IDを取得② アプリケーションIDを取得③ URLをよぶ
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
40
たざき がく
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]
]
Yahooルビ振り
API
Yahooルビ振りAPI
② アプリケーションIDを取得
クライアントサイド
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
41
たざき がく
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]
]
Yahooルビ振り
API
Yahooルビ振りAPI
② アプリケーションIDを取得
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
42
たざき がく
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]
]
Yahooルビ振り
API
Yahooルビ振りAPI
③ URLをよぶhttp://jlp.yahooapis.jp/FuriganaService/V1/furigana?appid=[②のアプリケーションID]&sentence=[山田 太郎をURLエンコードした文字列]
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
43
たざき がく
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]
]
Yahooルビ振り
API
Yahooルビ振りAPI
③ URLをよぶhttp://jlp.yahooapis.jp/FuriganaService/V1/furigana?appid=[②のアプリケーションID]&sentence=[山田 太郎をURLエンコードした文字列]
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
44
たざき がく
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]
]
Yahooルビ振り
API
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
45
たざき がく
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]
]
Yahooルビ振り
API
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
46
たざき がく
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]
]
Yahooルビ振り
API
データ取得できないエラー
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
47
たざき がく
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]
]
Yahooルビ振り
API
データ取得できないエラー
XML
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
48
たざき がく
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]
]
Yahooルビ振り
API
データ取得できないエラー
XML
クロスドメインエラー
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
49
たざき がく
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]
]
Yahooルビ振り
API
データ取得できないエラー
XML
クロスドメインエラー
JSONPだったらよかったのに
(クロスドメインエラーにならない)
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
50
たざき がく
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]
]
Yahooルビ振り
API
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
51
たざき がく
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]
]
Yahooルビ振り
API
YQL JSONP
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
52
たざき がく
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]
]
Yahooルビ振り
API
YQL JSONP
XMLをJSONPに変換してくれる
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
53
たざき がく
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]
]
Yahooルビ振り
API
YQL JSONP
XML, HTML, RSS, CSVなどをJSONPに変換してくれる
YQL (Yahoo! Query Language) : 米国のYahoo提供
https://developer.yahoo.com/yql/
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
54
たざき がく
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]
]
Yahooルビ振り
API
YQL JSONP
XML, HTML, RSS, CSVなどをJSONPに変換してくれる
YQL (Yahoo! Query Language) : 米国のYahoo提供
XML, HTML, RSS, CSVなどをJSONPに
変換できる
◇参考URLhttp://hail2u.net/blog/webdesign/scribble-something.htmlhttp://blog.yo41sawada.jp/weblog/tips/yql_cross-domain/
https://developer.yahoo.com/yql/
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
55
たざき がく
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]
]
Yahooルビ振り
API
YQL JSONP
XML, HTML, RSS, CSVなどをJSONPに変換してくれる
YQL (Yahoo! Query Language) : 米国のYahoo提供
https://developer.yahoo.com/yql/
$.getJSON("http://query.yahooapis.com/v1/public/yql?callback=?", {
q: "SELECT * FROM yahoojp.jlp.furigana.furiganaWHERE appid='" + appid + "'
and sentence='" + beforeValue + "'",format: "json",env: "store://datatables.org/alltableswithkeys"
}, function (json) {// 後処理
});
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
56
たざき がく
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]
]
Yahooルビ振り
API
YQL JSONP
XMLをJSONPに変換してくれる
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
57
たざき がく
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]
]
Yahooルビ振り
API
YQL JSONP
XMLをJSONPに変換してくれる
★弱点あり。
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
58
たざき がく
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]
]
Yahooルビ振り
API
YQL JSONP
XMLをJSONPに変換してくれる
★弱点あり。変換率100%ではない
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
59
たざき がく
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田 太郎” , ”やまだ たろう”],[“鈴木 花子” , ”すずき はなこ”],[“斉藤 三郎” , ”さいとう さぶろう”]
]
Yahooルビ振り
API
YQL JSONP
XMLをJSONPに変換してくれる
★弱点あり。変換率100%ではない
DE
MO
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
60
たざき がく
[A]Excel関数 [B]Office用アプリ
ふりがな取得関数を使う
Yahooルビ振りAPIとYQLとJSONPを使う
[セルD2]=PHONETIC (C2)
・“ふりがなの設定”で種類を[ひらがな]にする。
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
61
[A] Excel関数 [B]Office用アプリ
・Excelファイルがふりがな情報を持っている場合
ツカイドコロ ・Excelファイルがふりがな情報を持っていない場合
たざき がく
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
62
おまけ自選:難読氏名5選
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
63
四月一日 君尋(XXXHOLiC)
わたぬき きみひろ
鹿目 まどか(魔法少女まどか☆マギカ)
かなめ まどか
初春 飾利(とある科学の超電磁砲)
ういはる かざり
西谷 夕(ハイキュー!!)
にしのや ゆう
忍野 忍(<物語>シリーズ)
おしの しのぶ
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
64
四月一日 君尋(XXXHOLiC)
わたぬき きみひろ
鹿目 まどか(魔法少女まどか☆マギカ)
かなめ まどか
初春 飾利(とある科学の超電磁砲)
ういはる かざり
西谷 夕(ハイキュー!!)
にしのや ゆう
忍野 忍(<物語>シリーズ)
おしの しのぶ
ふりがなをYahooに
問い合せてみた
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
65
四月一日 君尋(XXXHOLiC)
わたぬき きみひろ
鹿目 まどか(魔法少女まどか☆マギカ)
かなめ まどか
初春 飾利(とある科学の超電磁砲)
ういはる かざり
西谷 夕(ハイキュー!!)
にしのや ゆう
忍野 忍(<物語>シリーズ)
おしの しのぶ
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
66
四月一日 君尋(XXXHOLiC)
わたぬき きみひろおたぬき きみひろ
鹿目 まどか(魔法少女まどか☆マギカ)
かなめ まどかかめ まどか
初春 飾利(とある科学の超電磁砲)
ういはる かざりしょしゅんかざりとし
西谷 夕(ハイキュー!!)
にしのや ゆうにしや ゆう
忍野 忍(<物語>シリーズ)
おしの しのぶおしの にん
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
67
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
68
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
69
300件の顧客データに、●●●列を追加して。
上司
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
70
300件の顧客データに、名前列を追加して。
上司
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
71
300件の顧客データに、名前列を追加して。
上司
<前提>姓と名は
くっついている
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
72
氏名(フルネーム)→名前抽出 [その2]
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
73
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
74
岳
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
75
岳
シンキングタイム20秒
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
76
[A]Excel関数 [B]Office用アプリ
岳
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
77
[A]Excel関数 [B]Office用アプリ
岳
田崎 岳 田崎 岳
全角スペースより右の文字列を取得
全角スペースで分割し文字列の2番めを取る
① ②
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
78
[A]Excel関数 [B]Office用アプリ
岳
田崎 岳 田崎 岳
全角スペースより右の文字列を取得
全角スペースで分割し文字列の2番めを取る
① ②
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
79
[A]Excel関数 [B]Office用アプリ
岳
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
80
[A]Excel関数 [B]Office用アプリ
岳
林?伊藤?
佐々木?
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
81
[A]Excel関数 [B]Office用アプリ
岳
\(T_T)/お手上げ
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
82
[A]Excel関数 [B]Office用アプリ
岳
\(T_T)/お手上げ Yahooルビ振りAPIと
YQLとJSONPを使う
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
83
たざき がく
[[“山田 太郎” , ””],[“鈴木 花子” , ””],[“斉藤 三郎” , ””]
]
[[“山田太郎” , ””],[“鈴木花子” , ””],[“斉藤三郎” , ””]
]
[[“山田太郎” , “太郎”],[“鈴木花子” , ”花子”],[“斉藤三郎” , ”三郎”]
]
Yahooルビ振り
API
YQL JSONP
XMLをJSONPに変換してくれる
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
84
[A]Excel関数 [B]Office用アプリ
岳
\(T_T)/お手上げ Yahooルビ振りAPIと
YQLとJSONPを使う
DE
MO
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
85
[A] Excel関数 [B]Office用アプリ
\(T_T)/
お手上げ
\(^o^)/
バンザイ
岳
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
86
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
87
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
88
300件の顧客データに、●●●列を追加して。
上司
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
89
300件の顧客データに、郵便番号列を追加して。
上司
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
90
住所→郵便番号
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
91
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
92
954-0166
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
93
954-0166
シンキングタイム20秒
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
94
954-0166
[A]??? [B]Office用アプリ
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
95
954-0166
[A]??? [B]Office用アプリ
なにかのWebAPIに問い合わせる
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
96
954-0166
[A]??? [B]Office用アプリ
GoogleのAPIに聞く
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
97
954-0166
[A]??? [B]Office用アプリ
GoogleのAPIに聞く
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
98
954-0166
[A]??? [B]Office用アプリ
GoogleのAPIに聞く
※googleの変換API (ajaxzip3)[○] 郵便番号→住所[X] 住所→郵便番号
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)1
99
954-0166
[A]??? [B]Office用アプリ
住所→郵便番号変換WebAPIに問い合わせ
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
00
954-0166
[A]??? [B]Office用アプリ
むずかしそう。。
住所→郵便番号変換WebAPIに問い合わせ
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
01
954-0166
※住所→郵便番号をサポートしているWebAPI
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
02
954-0166
※住所→郵便番号をサポートしているWebAPI・ぽすたん (http://www.postan.jp)・IW3 PROJECT (http://project.iw3.org/zip_search_x0401)・グルーブテクノロジーWebサービス
(http://groovetechnology.co.jp/webservice/)
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
03
954-0166
※住所→郵便番号をサポートしているWebAPI・ぽすたん (http://www.postan.jp)・IW3 PROJECT (http://project.iw3.org/zip_search_x0401)・グルーブテクノロジーWebサービス
(http://groovetechnology.co.jp/webservice/)
新潟県長岡市
郵便番号検索API
たくさん(50件以上)
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
04
954-0166
※住所→郵便番号をサポートしているWebAPI・ぽすたん (http://www.postan.jp)・IW3 PROJECT (http://project.iw3.org/zip_search_x0401)・グルーブテクノロジーWebサービス
(http://groovetechnology.co.jp/webservice/)
郵便番号検索API
9540166(1件)
新潟県長岡市海老島勇次新田
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
05
954-0166
※住所→郵便番号をサポートしているWebAPI・ぽすたん (http://www.postan.jp)・IW3 PROJECT (http://project.iw3.org/zip_search_x0401)・グルーブテクノロジーWebサービス
(http://groovetechnology.co.jp/webservice/)
郵便番号検索API
0件
新潟県長岡市海老島勇次新田115-10
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
06
954-0166
※住所→郵便番号をサポートしているWebAPI・ぽすたん (http://www.postan.jp)・IW3 PROJECT (http://project.iw3.org/zip_search_x0401)・グルーブテクノロジーWebサービス
(http://groovetechnology.co.jp/webservice/)
郵便番号検索API
0件
新潟県長岡市海老島勇次新田115-10
問い合わせ文字列を投げ過ぎたらNG
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
07
954-0166
※住所→郵便番号をサポートしているWebAPI・ぽすたん (http://www.postan.jp)・IW3 PROJECT (http://project.iw3.org/zip_search_x0401)・グルーブテクノロジーWebサービス
(http://groovetechnology.co.jp/webservice/)
新潟県長岡市海老島勇次新田115-10
〒9540166
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
08
954-0166
※住所→郵便番号をサポートしているWebAPI・ぽすたん (http://www.postan.jp)・IW3 PROJECT (http://project.iw3.org/zip_search_x0401)・グルーブテクノロジーWebサービス
(http://groovetechnology.co.jp/webservice/)
新潟県長岡市海老島勇次新田115-10
〒9540166
全角数字で判定する?
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
09
954-0166
※住所→郵便番号をサポートしているWebAPI・ぽすたん (http://www.postan.jp)・IW3 PROJECT (http://project.iw3.org/zip_search_x0401)・グルーブテクノロジーWebサービス
(http://groovetechnology.co.jp/webservice/)
新潟県長岡市海老島勇次新田115-10
北海道旭川市10条通19丁目34-23
〒9540166
〒0788220
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
10
954-0166
[A]??? [B]Office用アプリ
むずかしそう。。
住所→郵便番号変換WebAPIに問い合わせ
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
11
954-0166
[A]Excelアドイン [B]Office用アプリ
むずかしそう。。
郵便番号変換ウィザードを使う
住所→郵便番号変換WebAPIに問い合わせ
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
12
954-0166
[A]Excelアドイン [B]Office用アプリ
むずかしそう。。
郵便番号変換ウィザードを使う
住所→郵便番号変換WebAPIに問い合わせ
<必要なこと>1) アドインダウンロード2) Excelに組み込む3) 使う
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
13
954-0166
Excel アドイン:郵便番号変換ウィザード@CodePlex
http://excelzipcode7japan.codeplex.com/
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
14
954-0166
1. [download]をクリックして、アドインをダウンロードする
http://excelzipcode7japan.codeplex.com/
導入編
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
15
954-0166
2. ファイルのプロパティを開き、[ブロックの解除]をクリック
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
16
954-0166
3. Excelのオプション>アドイン>設定をクリック
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
17
954-0166
4. 参照をクリック
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
18
954-0166
5. アドインファイルを選択してOKクリック
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
19
954-0166
6. OKをクリック
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
20
954-0166
1. アドイン>ウィザード>郵便番号変換 を選択
使用編
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
21
954-0166
2. 住所から郵便番号を生成する を選択して[次へ]
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
22
954-0166
3. 住所データの範囲と、郵便番号を出力したい範囲を設定
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
23
954-0166
4. 書式は[文字列]を選択して次へ
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
24
954-0166
5. [完了]をクリック
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
25
954-0166
6. 動いた~
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
26
954-0166
6. 動いた~D
EM
O
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
27
954-0166
[A]Excelアドイン [B]Office用アプリ
むずかしそう。。
郵便番号変換ウィザードを使う
住所→郵便番号変換WebAPIに問い合わせ
<必要なこと>1) アドインダウンロード2) Excelに組み込む3) 使う
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
28
954-0166
[A] Excelアドイン [B]Office用アプリ
△(導入ちょっと大変 1から作る
○(ウィザード形式でできる)
誰かが作ったものを使う
・この方法1択ではないか?
ツカイドコロ
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
29
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
30
まとめ
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
31
まとめ
なんでもかんでもExcel関数
なんでもかんでもOffice用アプリ
なんでもかんでもVBA
なんでもかんでもVSTO
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
32
まとめ
なんでもかんでもExcel関数
なんでもかんでもOffice用アプリ
なんでもかんでもVBA
なんでもかんでもVSTO
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
33
まとめ
なんでもかんでもExcel関数
なんでもかんでもOffice用アプリ
なんでもかんでもVBA
なんでもかんでもVSTO
問題に応じて最適な手法を使いましょう
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
34
まとめOffice用アプリ
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
35
まとめOffice用アプリ
WebサービスA
WebサービスB
WebサービスC
WebサービスD
WebサービスE
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
36
まとめOffice用アプリ
WebサービスA
WebサービスB
WebサービスC
WebサービスD
WebサービスE
MashUp
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
37
まとめOffice用アプリ
WebサービスA
WebサービスB
WebサービスC
WebサービスD
WebサービスE
MashUp
引き出しがあればあるほどできることが
増える
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
38
まとめOffice用アプリ
WebサービスA
WebサービスB
WebサービスC
WebサービスD
WebサービスE
MashUp
引き出しがあればあるほどできることが
増える
情報の引き出しを
増やしましょう
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
39
まとめOffice用アプリ
WebサービスA
WebサービスB
WebサービスC
WebサービスD
WebサービスE
MashUp
引き出しがあればあるほどできることが
増える
情報の引き出しを
増やしましょう
例)日本の全エンジニアに捧ぐ!現在公開されているAPI一覧【2013年版】http://www.find-job.net/startup/api-2013
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
40
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
41
サンプルデータ
Office用アプリRandom Data Generator (きぬあささん作)
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
42
今日のスライド
今夜以降「slideshare ta2c」でネットで検索
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
43
データ
http://1drv.ms/Zho851
サンプルアプリ
<お約束>サンプルに関して、万一ユーザーまたは第三者が何らかの損害を被った場合においても、一切の責任を負うことは出来ませんのでご了承ください。
#A
pp
sForO
ffice詰
Exce
l/くら
もと
たつ
し(@
ta2
c)2
44#AppsForOffice
詰ExcelOffice用アプリの
ツカイドコロ