有限会社ダブルクォーテーション公式ブログ
弊社は東京にて業務システム、アプリケーションの開発業務、新人研修、社員研修、ITスクール等での講師業務を行っています。
各種プログラミング言語、各種サーバ構築、データベース、Web開発、MS Office VBA等を取り扱っています。
https://doublequotation.com

あいかわらず日本人は方眼紙好き、グリッド大好き、Excel激好きのようです。
時にはワープロ、時には帳票、時にはデータベースと、その使い方は千差万別です。
VBAを組み込んで、もはや基幹システムとなっているものもありますね。

近年ではグリッドデータを場所問わず使用したい、どのOSでも使用したいと言うことで、ExcelからGoogleスプレッドシートに移行するトコが増えてきています。
それに伴ってVBAもGAS(Google Apps Script)に移行するのですが、「両者似ているから簡単」と甘く見て、痛い目見る人も増えてきているとか。

当然ながらVBAで使用される「旧VB」と、GASで使用される「JavaScript(ECMAScript)」は異なる言語です。似て非なるものです。
今回の講義で取り扱うのは旧VBの「For Each」と、JavaScriptの「for in」についてです。これもまた「似て非なるもの」です。

そもそも、JavaScriptの「for in」は、対象オブジェクトの列挙可能な「プロパティ」を取得する文法です。
var Personal = function(){
  this.name = "A太郎";
  this.age = 20;
};

function Test01(){
  var object = new Personal();
  for(var property in object){
    Browser.msgBox(property);          //「name」「age」と出力
    Browser.msgBox(object[property]);  //「A太郎」「20」と出力
  }
}
連想配列(ハッシュ)もObjectオブジェクトでできています。
連想配列の場合は、いわゆる「キー」を取得することができます。
function Test02(){
  var hash = {key1:10, key2:20, key3:30};
  for(var key in hash){
    Browser.msgBox(key);        //「key1」「key2」「key3」と出力
    Browser.msgBox(hash[key]);  //「10」「20」「30」と出力
  }
}
配列もArrayオブジェクトでできています。
配列の場合は、いわゆる「インデックス」を取得することができます。
function Test03(){
  var array = [10, 20, 30];
  for(var index in array){
    Browser.msgBox(index);         //「0」「1」「2」と出力
    Browser.msgBox(array[index]);  //「10」「20」「30」と出力
  }
}
連想配列(ハッシュ)にはlengthプロパティが無いので、各要素の取得に「for in」を使用することがありますが、配列に「for in」を使用する場合は、旧VBの「For Each」と同様に考えてはいけません。

注意点を3つ紹介。

1、プロパティの追加に注意
プロパティを追加した場合、当然そのプロパティも取得対象になります。
function Test04(){
  var array = [10, 20, 30];
  array.newProperty = "適当";
  for(var index in array){
    Browser.msgBox(index);  //「0」「1」「2」「newProperty」と出力
  }
}
2、多次元配列に注意
旧VBの「For Each」は多次元配列の全要素を取得します。シートを読み込む際に便利ですね。
JavaScriptの「for in」は、1次元目のインデックスしか取得しないので、全要素を取得したい場合は、さらに「for in」をネストすることになります。
function Test05(){
  var array = [[10, 20, 30], [40, 50, 60]];
  for(var index in array){
    Browser.msgBox(index);  //「0」「1」と出力
  }
}
3、順不同に注意
「for in」で取得されるプロパティ(キー、インデックス)は順不同です。
必ずしも、定義した順に、名前順に、番号順にはならないので注意です。

なお、GASはJavaScript1.6に基づいており「for each in」「for of」は実装されていません。
配列の全要素を順番に読むには、昔ながらのforとlengthを使用するのが良策です。

VBAでも旧VBの基本文法の重要性は「これでもか!!」ってぐらい説いてきました。
同様にGASを使用するなら、ちゃんとJavaScript(ECMAScript)の基本文法を学習しましょう。

今年も新人研修の季節がやってきました。
今年は3案件程担当させていただきます。ご依頼ありがとうございます。

基本情報処理、ネットワーク、データベース、プログラミング、システム開発演習等、講義内容は色々ありまして、近年ではJava、.NET、PHP、Rubyによる「Webアプリ開発」によるシステム開発演習が主流になっています。
やっぱ時代はWeb、クラウドの全盛期ですな。

今年は3案件ともJavaとServletを担当することになり、教材を見直し、手直ししているところ。
Servletの教材「Tomcatのインストール(Windows版)」を改定したので、当校にも掲載します。

Servlet1/Tomcatのインストール(PDF)

この手の研修では、必ずと言っていいぐらい、ServletコンテナーにはTomcat、IDEにEclipseが使用されます。
Eclipseが便利なせいか、Tomcatのインストールはできても、デプロイができない人も多いのでは?
面倒かもしれないけど、まずは手動でデプロイしてみましょう。

新入社員もそうでない人も頑張れ!!

2017年も新年度4月を迎えました。
真冬並みに寒くなったり、雨が降ったりして、桜の満開予想がつきにくいですな。
桜は何を感じ取って咲き頃を知るのでしょう?不思議だ。

さて、本日の講義は、総合開発ツール「Eclipse」のコンテンツ・アシストについてのお話です。

EclipseのJavaScript開発「JSDT」は、バージョン4.6系「Neon」から、コンテンツ・アシスト(自動補完機能)が「無効」なのがデフォルトになっています。
設定を変更して有効化しても、コンテンツ・アシストは作動せず「プロポーザルが無い」と言われてしまいます。
なぜ、このような現象が出るのかは不明ですが、JSDTとは別のJavaScriptライブラリを使用することで解決することはできます。

JavaScriptライブラリにも色々あるようですが、私が使用したのは「Webclipse」です。
インストール及び設定の手順は下記の通り。

1、「マーケットプレース」を起動する。
2、「Webclipse」を検索する。2017年4月時点の最新版は「2017 CI 4」です。
3、Webclipseをインストールする。(必要無いものもあるでしょうが、とりあえず全部入れました)
4、再起動する
5、「ウィンドウ」→「設定」→「JavaScript」→「エディター」→「コンテンツ・アシスト」の「自動有効化を使用可能にする」にチェックを入れる。

これで、JavaScriptのコンテンツ・アシストが作動します。

AngularJS、jQuery、Node.js等に対応させたい場合は、プロジェクトのプロパティ→「JavaScript」→「インクルード・パス」の「Technologies」から、該当するライブラリにチェックを入れてください。
「jsdt-jquery」が無くて困っていた方も、これで解決できるのでは??

HTML、CSS、JavaScript、jQuery、PHPのコーディングがEclipseひとつで事済むので、とても重宝しています。

と、言うことで、それらの技術を使った弊社のサンプル/デモ「デモ01 物件情報検索システム」を、ちょっとだけ改良しましたので、ご覧ください。

2017年3月21日「小さな会社ではじめてIT担当になった人のセキュリティ入門 (秀和システム)」が無事、発売されました!!
本の大まかな内容を書くと、過去の講義と重複してしまうので、「新刊発行」をご参考ください。

「経営者としてセキュリティの基礎ぐらいは知っておこう」と、秀和システムの社長さまもお読みになり「実に分かりやすかった」との、お褒めの言葉をいただきました。光栄です。

さて、今回の講義はITではなく、みんな大好きお金のお話「印税」についてお話します。

今回の契約は下記の通り。
●本体価格は1600円
●印税率は8%、増刷は10%
●初版1刷は4000部
●実売部数印税

いくつかの専門用語について補足しておきましょう。

良く、本の最後のページあたりに「○版○刷」と記されていますね。
「○版」は「何回原稿を修正したか」です。原稿を修正するたびに「2版」「3版」となっていきます。
「○刷」は「何回増刷したか」です。「2版3刷」とあれば、その書籍は「原稿2版による3回目の増刷時の書籍」になります。
私の場合は「初版1刷4000部」なので、もし4000部が売り切れそうになったら「2刷」「3刷」と増刷されるかもしれません。

印税には「刷部数印税」と「実売部数印税」があります。

「刷部数印税」は「印刷した数」が印税対象になります。本の売り上げは関係ありません。
著者としては嬉しい契約ですが、出版社からすると増刷しにくいデメリットがあります。
4000部印刷した場合の印税は「1600円×8%×4000部」になります。

「実売部数印税」は「売れた数」が印税対象になります。本が売れないとお金になりません。
印税は「1600円×8%×実売部数」になり、数か月ごとに集計して支払われます。

調べたところ、今回の契約は、一般的な平均的な契約みたいです。
出版業界も厳しい昨今、多くの本は初版で終わり、10000部売れれば万々歳。50000部売れれば「大ヒット商品」だそうです。

仮に4000部売れれば約50万円、10000部売れれば約150万円。50000部売れれば約800万円。
私の本は何部ぐらい売れるでしょうか、、、

実働時間は約2か月。作業に慣れれば、もう少し短縮できたことでしょう。
執筆にかかった費用はほとんど無しですが、何部売れたら元が取れるでしょうか?

いやいや、私の場合、本を出すことによる「広告効果」も狙っているので、実働時間と印税だけで利益は計れませんが、執筆だけでご飯を食べていくのも大変なことなのですな。

それで書き手が減っていくのも、また出版業界には厳しい現状なのかもしれません。

最近は格闘技の試合よりも、筋肉少女帯のライブに行くことが多いA太郎です。
中学生の頃、良く聞いていましたが、今聞いても奥深さを感じる今日この頃。
たまには私事をのべてみました。

さて、本日は、当校の講座「テーブル設計」のCMをさせていただきましょう。
講座内容については一見して頂ければ。

これは、今まで何度も何度もも見てきた光景です。

Excelは表計算ソフト。データ管理に関してはデータベースの方が良いのは道理。
といことでデータベースを導入したのはいいが、作業効率はちっとも良くならない。
その要因のひとつが「テーブル設計ができていない」です。
テーブル設計ができていないので、効率良くデータを検索、集計することができないのです。

皆さんはそんな事態になってはいませんか?

コチラは、テーブル設計の教材の一部です。
主にAccess使用者に向けて、リレーショナル型データベースの特徴を説いていますので、是非ともご覧下さい。

↑このページのトップヘ