はじめてのVBA その1
やっと基本情報の試験が終わって区切りもいいので、今回からはVBAについて勉強を。
ほとんどVBAを触ったことがないので、初歩の初歩から。
- プロシージャー
プロシージャー・・・プロシージャとは一連の処理をまとめたもの
書き方としては Sub プロシージャ名()
Excelのツール → マクロから VisualBasicEditor
Sub HelloWorld() MsgBox ("hello world") End Sub
これでメッセージボックスにhello worldと表示される
Sub CellChange() Worksheets("Sheet1").Range("A1").Value = "hello" Range("A2").Value = "hello2" Cells(3, 1).Value = "hello3" Cells(3, 1).Offset(1, 0).Value = "hello4" End Sub
今度はセルに代入していくパターン
2行目はsheetを指定していき、セルに代入していく
3行目は特にsheetを指定せずに代入していく
4行目はABCで指定していくのではなく、123で挿入していく
5行目は123で場所を指定しながらそこからどの位置へ移動していくかを決める
- Worksheets・・・ワークシートを指定
- Range・・・セルを指定(ABCで)
- Cells・・・セルを指定(数字で)
- Offset・・・セルを指定した位置からの移動
- value・・・値を代入
Sub CellsChange() Range("A1", "B3").Value = "hello" Range("A5:C7").Value = "hello2" Range("4:4").Value = "row 4" Range("C:C").Value = "Column C" Cells.Clear End Sub
複数選択で一気にセルを変更したい場合はこれ。
2行目3行目のパターンはコンマで区切るか、コロンで区切るパターンでも変更可能。
4行目5行目のパターンは列、行を一気に変更したい場合。
Cells.Clearで全てをリセットすることもできる。
基本情報情報技術者 まとめその4
基本情報情報技術者の資格の勉強中。 必要だと思われる知識言葉のまとめその4。
システム構成と故障対策
コンピュータを働かせる形
- シンクライアント・・・クライアント側は入力や表示部分を担当し情報の処理・保管といった機能はサーバ
- ピアツーピア・・・ネットワーク場でコンピュータ同士が対等
- オンライントランザクション処理・・・要求に対して即座に処理
- バッチ処理・・・一定期間ごとに処理
- スループット・・・単位時間あたりに処理できる仕事量
- レスポンスタイム・・・コンピュータに処理を依頼し終えてから何か応答があるまで
- ターンアラウンドタイム・・・コンピュータに処理を依頼し始めてからその応答が全て返されるまで
システムを止めない工夫
- デュアルシステム・・・2組のシステムを使って信頼性を高める。同じ処理を行うシステムを2組み用意
- デュプレックスシステム・・・2組のシステムを用意し、片方を運転片方を待機状態
システムの信頼性
- RASIS・・・システムの信頼性
- MTBF・・・平均故障間隔(故障と故障の間の間隔)
- MTTR・・・平均修理時間
- フォールトトレラント・・・壊れても大丈夫なような対策
- バスタブ曲線・・・故障の発生頻度と時間の関係グラフ
- システムに必要となるコスト・・・TCO
企業活動と関連法規
企業活動と組織のカタチ
- 機能別組織・・・開発・営業といった仕事の種類
- 事業部組織・・・取り扱う製品や市場ごとに事業部をわかる
- プロジェクト組織・・・プロジェクトごとに各部門から編成
- マトリックス組織・・・事業部と職能別など組織をマス目状に組み合わせた組織
- CEO・・・最高経営責任者
- CIO・・・最高情報責任者
電子商取引
- BtoE・・・企業と社員の取引
- GtoC・・・行政と民間
経営戦略と自社のポジショニング
- アライアンス企業・・・同士が連携して事業を行うことを
- プロダクトポートフォリオマネジメント・・・花形、問題児、負け犬、金のなる木
- コアコンピタンス・・・他社にはマネのできない、その企業独自のノウハウや技術などの強み
- ベンチマーキング・・・競合相手と先進企業と比較することで自分を見つめ直す
# 経営戦略のための業務改善と分析方法
PDCAサイクルとデータ整理技法
- バズセッション・・・全体を少人数のグループに分けてグループごとに結論を出すようにする手法
- KJ法・・・収集した情報をカード化してそれをグループ化することで問題点を洗い出す
- 決定表(デシジョンテーブル)・・・答えをYとNとでわけて複数の条件と決定づけられる行動とを整理する
グラフ
- レーダーチャート・・・五角形の図
- ポートフォリオ図・・・2つの軸でどの位置でどんな大きさで分布しているのか
QC7つ道具と呼ばれる品質管理手法たち
- QC・・・
- 層別・・・データを属性ごとに分けることで特徴をつかみやすくする
- パレード図・・・現象や原因を件数の多い順に棒グラフとして並べ、その累積値を折れ線グラフにして表す
- 散布図・・・2つの項目と対して点を打っていきをのばらつき具合で
- ヒストグラフ・・・収集したデータをいくつかの区間に分けて、棒グラフとして品質のばらつきなどを捉える手段
- 管理図・・・時系列的に発生するデータのばらつきを折れ線グラフであらわして、上限と下限を設定する
- 特性要因図・・・原因と結果の関連を魚の骨のような形状として体系的にまとめる
- チェックシート・・・あらかじめ確認する事項を列挙しておいたシートを使って確認結果を記入
財務会計
基本情報情報技術者 まとめその3
基本情報情報技術者の資格の勉強中。 必要だと思われる知識言葉のまとめその3。
システム開発
システム開発の流れ
システムの開発手法
- ウォーターフォール・・・要件定義から各工程を順番に進めていく
- プロトタイピングモデル・・・開発初期の段階で試作品を津口それを利用者に確認
- スパイラルモデル・・・それぞれのサブシステムごとに開発。個々のサブシステムについてはウォーターフォール
- CASE・・・システム開発を支援するツール群がCASEツール
業務のモデル化
- DFD・・・データの流れを図としてあらわしたもの。
- E-R図・・・実体と実体間の関連という概念を使って構造を図にあらわしたもの
コード設計と入力のチェック
- チェックディジット・・・誤入力を判定するためにコードへ付加された数字のこと
- ニューメリックチェック・・・数値として扱う必要のデータに文字など数値として扱えないものが含まれていないかチェック
- シーケンス・・・対象とするデータが一定の順序で並んでいるかをチェック
- リミットチェック・・・データが適正な範囲内にあるかチェック
- フォーマットチェック・・・データの形式が正しいかチェック
- 照合チェック・・・登録済みでないコードの入力を避けるため、入力されたコードが、表中に登録されているか照合
- 論理チェック・・・販売数と在工数など、対となる項目の値に矛盾がないかをチェック
- 重複チェック・・・一意であるべきコードなどが重複して複数個登録されていないかチェック
モジュールの分割
テスト
- ブラックボックステスト・・・モジュール内部構造は意識せず、入力に対して適切な出力が得られるか
- ホワイトボックステスト・・・モジュールの内部構造が正しく作られているか
- 命令網羅、判定条件網羅、条件網羅、複数条件網羅
- 同値分割・・・データ範囲を種類ごとのグループに分け、それぞれから代表的な値をだす
- 限界値分析・・・グループの毎の境目をチェック
- リグレッションテスト・・・プログラムを修正した時に、その修正内容がこれまでに正常に動作していた範囲に悪影響をあたえていないか
- トップダウンテスト・・・上位モジュールから先にテストを済ます
- ボトムアップテスト・・・下位モジュールからテストを行う
- 折衷テスト・・・トップダウンテスト、ボトムアップてすとを組み合わせておこあなう
- ビックバンテスト・・・全てのモジュールをつなげてテスト
システム周りのマネジメント
プロジェクトマネジメント
- PMBOK・・・プロジェクトマネジメントの技法を体系的にまとめたもの
- WBS・・・プロジェクトに必要な作業や成果物を階層化した図であらわす
- アローダイアグラム・・・作業の流れとそこに要するに日数とをわかりやすく図にあらわしたもの
- クリティカルパス・・・全体のスケジュールを狂わせる結果に即つながるもの
ITサービスマネージメント
- SLA・・・サービスレベルアグリーメント。どのような内容のサービスを、どういった品質で提供するか
- ITIL・・・ITサービスにおいて管理・運用規則に関するベストプラクティス。
- サービスサポート・・・日々の運用に関する作業をまとめたもの
- サービスデリバリ・・・長期的な視点でITサービスの計画と改善を図る
プログラミング言語
インタプリンタとコンパイラ
- インタプリタ・・・逐次翻訳
- コンパイラ・・・一旦機械語のファイルをつくる
- リンカ・・・自分で分割したモジュール、ライブラリをつなぎ合わせプログラムファイルになる。それをつなぎ合わせる作業。
- ローダ・・・できたプログラムをメモリに読み込ませる
構造化プログラミング
- 制御構造・・・順次構造、選択構造、繰り返し構造
データを探索するアルゴリズム
- 線形探索法・・・先頭から順に探索していく
- 2分探索法・・・データの集合をざっくり2つに分けながら対象を絞り込んでいく
- ハッシュ法・・・ハッシュ関数と呼ばれる一定の計算式を用いて算出
データを整列させるアルゴリズム
- 基本交換法(バブルソート)・・・隣接するデータの大小を比較
- 基本線選択法(選択ソート)・・・対象とするデータの中から最小・最大のデータを取り出して先頭のデータと交換
- 基本挿入法・・・整列済みのものと未整列のものと分ける。そして未整列のほうから整列済みの列に適切な位置に挿入。
オーダ記法
- アルゴリズムの計算量をOの形で表すもの
基本情報情報技術者 まとめその2
基本情報情報技術者の資格の勉強中。 必要だと思われる知識言葉のまとめその2。
DB
DMBSと関係DB
- 表をわける・・・正規化
- 関係演算
- 選択・・・行(レコード)を取り出す
- 射影・・・列(フィールド)を取りだす
- 結合・・・表と表を合体させる
- スキーマ・・・DBの概要、要旨
主キーと外部キー
- 主キー・・・行を特定する鍵のこと
- 外部キー・・・表と表を繋ぐキー
トランザクション管理と排他的制御
- トランザクション・・・一連の処理のまとめ
- 排他制御・・・データをロックして読み書きできないようにする
- 共有ロック・・・読むことはできるが、書くことはできない
- 占有ロック・・・読むことも書くこともできない
- デッドロック・・・お互いが大概のロックを待ち続ける
- ACID特性・・・原始性・一貫性・隔離性・耐久性
- ストアドプロシージャ・・・DBを操作する一連の流れをまとめ、DB側に保存しておくこと
DBの障害管理
- ジャーナル・・・ログファイル
- ロールバック・・・更新前ジャーナルからデータを取得して、DBをトランザクション開始直前の状態まで戻す
- ロールフォワード・・・更新後ジャーナルから取得して、DBを障害発生直前まで復旧
ネットワーク
LANとWAN
- CSMA/CD方式・・・ネットワーク常の通信を監視して、他に送信を行なっている者がいない場合に限ってデータの送信を開始。
- 集中処理・・・ホストコンピュータが集中的に処理、他のコンピュータはそれにぶらさがる
- 分散処理・・・複数のコンピュータに負荷を分散。それぞれで処理を行う
- クライアントサーバ・・・サーバとクライアントという2種類のコンピュータで処理を行う
プロトコルとパケット
- アプリケーション層・・・どんなサービスか
- プレゼンテーション層・・・データはどんな形式化
- セッション層・・・通信の開始から終了までどう管理するか
- トランスポート層・・・通信の信頼性
- ネットワーク層・・・ネットワークとネットワークをどう中継するか
- データリンク層・・・同一ネットワーク内でどう通信するか
- 物理層・・・物理的にどうつなぐか
- NIC・・・コンピュータをネットワークに接続するための拡張カード
- リピータ・・・物理層の中継機能
- ブリッジ・・・データリンク層の中継機能
- ルータ・・・ネットワーク層の中継機能
- ゲートウェイ・・・4層以上が異なるネットワーク噛んでプロトコルを変換する装置
データの誤り制御
TCP/IPを使ったネットワーク
ネットワーク上のサービス
セキュリティ
ネットワークに潜む脅威
- プライバシーマーク制度・・・JIS Q 15001
ユーザ認証
- バイオメトリクス認証・・・指紋、整体、虹彩など身体的特徴で判断
- ワンタイムパスワード・・・一度限り有効、使い捨てのパスワード用いる認証
- コールバック・・・一旦アクセスした後で回線を切り、逆にサーバ側からコールバックさせることでアクセス権を認証
- ソーシャルエンジニアリング・・・人の心理的不注意をついて情報を盗み出す
ウイルスの脅威
- マクロウイルス・・・アプリのマクロを悪用したもの。表計算ソフトのデータダイルに寄生
- ワーム・・・自身単独で複製を作成しながら、ネットワークなどを貸して感染を広める
- トロイの木馬・・・ユーザに実行をうながし、その裏で処理を行う
- マルウェア・・・悪意のあるソフトウェア全般
- スパイウェア・・・情報収集を目的。個人情報を外部に流す
- ボット・・・ボット作成者の指示通りに動かす
ネットワークのセキュリティ対策
基本情報情報技術者 まとめその1
基本情報情報技術者の資格の勉強中。 必要だと思われる知識言葉のまとめ。
CPU
- 制御装置(CPU)
- 演算装置(CPU)
- 主記憶装置(メモリ)
- 補助記憶装置(ハードディスク・主記憶装置・補助記憶装置)
- 入力装置
ノイマン型コンピュータ
- プログラム内臓方式 ・・・実行時にはプログラムを主記憶装置に読み込んでおく
- 逐次制御方式・・・命令を1つずつ取り出して順番に実行
CPUの命令実行手順とレジスタ
- レジスタ・・・CPU内部の記憶装置
- プログラムカウンタ・・・次に実行するべき命令が入っている
- 命令レジスタ・・・取り出した命令を一時的に記憶(命令部とオペランド部の構成)
- インデックスレジスタ・・・アドレス装飾に用いるためのもの。連続しtデータの増分値を保持
- ベースレジスタ・・・アドレス装飾に用いるためのもの。プログラムの先頭アドレスを保持
- アキュームレジスタ・・・演算の対象となる数、演算結果を記憶するレジスタ
命令の実行順 命令の取り出し → 命令の解読 → 対象データ読み出し → 命令実行
機械語のアドレス指定方式
- 即値アドレス指定方式 ・・・オペランド部に対象となるデータが入ってる
- 直接アドレス指定方式・・ オペランド部に記載しているアドレスが、そのまま実行アドレスとして使える
- 関節アドレス指定方式・・・オペランド部に記載してあるアドレスの中に、対象となるデータが入っている箇所のメモリアドレスが記載
- インデックスアドレス指定方式・・・オペランド部の値に、インデックスレジスタの値を加算することで実行アドレスを求める
- ベースアドレス指定方式・・・ベースレジスタの値を加算することで実行アドレスを求める
- 相対アドレス指定方式・・・プログラムカウンタの値を加算することで実行アドレスを求める
CPUの性能指標
- クロック・・・1周期的な信号
- クロック周波数・・・1秒間に繰り返される回数(4HzのCPU = 1秒間にクロックが4回)
- CPI・・・1命令あたり何クロックサイクル必要か
- MIPS・・・1秒間に実行できる命令の数
CPUの高速化技術
- パイプライン処理・・・複数の命令を並列して実行
- スーパーパイプライン・・・各ステージの中身を細かいステージに分割することで効率をあげる
- スーパースカラ・・・パイプライン処理を行う回路を複数持たせることで同時に実行
- SISC・・・CPUに高機能な命令を持たせることによって、一つの命令で複雑な処理を処理する
- RISC・・・単純な命令しか持たないかわりに、それらをハードウェアのみ実装して命令を高速に処理
メモリ
メモリの分類
- RAM・・・電源を切ると中身が消える。読み書き可(揮発性)
- DRAM・・・安価で容量が大きい。主記憶装置に用いられるメモリ
ROM・・・読み出し専用メモリ(不揮発性)。
- マスクROM・・・製造時にデータを書き込む。以降は内容を書き変えれない
- PROM(EPROM・EEPROM・フラッシュメモリ)・・・ユーザの手でか聞かれることができる。(あくまでROMの技術をベースとして読み書きできるようにしたもの)
主記憶装置と高速化
- キャッシュメモリ・・・メモリとCPUの間に、より高速に読み書きできるメモリを置いて、速度差による吸収させる
- ライトスルー方式・・・キャッシュメモリへの書き込みを行う際に、主記憶装置へも同時に書き込みを行う
- ライトバック方式・・・キャッシュメモリしか書き込みしない。キャッシュメモリから追い出されるデータが発生した際に、主記憶を打ちへと書き戻す。
- ヒット率・・・目的とするデータがキャッシュメモリに入ってる確率
ハードディスクとその他の補助記憶装置
ハードディスクの構造と記憶方法
- プラッタ(ディスク)・・・情報を記録する円盤
- セクタ・・・扇状に別れた最小範囲
- トラック・・・セクタを複数集めたぐるりと1週分の領域
- シリンダ・・・トラックを複数まとめたもの
- クラスタ・・・osが認識する複数のセクタを1ブロックとみなした単位
- フラグメンテーション・・・ファイルがあちらこちらに別れて断片化してしまうこと
- デフラグメンテーション・・・断片化したファイルのデータを連続した領域に並べ直してアクセスを早くする
RAIDはハードディスクの合体技
- RAID・・・複数のHDを組み合わせることでHDの速度や信頼性を向上
- RAID 0・・・ひとつのデータを2台以上のディスクに分散して書き込み
- RAOD 1・・・2台以上のディスクに対して常に同じデータを書き込み
- RAID 5・・・3台以上のディスクを使ってデータと同時にパリティと呼ばれる謝り訂正符号も分散させて書き込み
HD以外の補助記憶装置
- ストリーマ・・・磁気ディスクで、連続で読み書きを行うものストリーマ
その他のハードウェア
入力装置
- OCR・・・文字を読み取る装置
- OMR・・・マークシートの塗りつぶす位置を読み取る装置
- JANコード・・・商品を表すバーコード
- QRコード・・・3個の検出用シンボルによって回転角度と読み取り方向が認識できる
プリンタ
- CSP・・・1秒間に何文字印字できるか
- PPM・・・1ページに何ページ印字できるか
入出力インタフェース
- パラレルインターフェース - IDE・・・内蔵用HDを接続するための規格として使われいたインターフェース - SCSI・・・HD、CD-ROM、MOドライブ、イメージスキャナなど、様々な周辺機器の接続に使われていた
- シリアルインターフェース - USB・・・PCと周辺聞きをつなく際の標準的なインターフェース - IEEE1394・・・HDレコーダー、ビデオカメラなどの機器に使われているインターフェース
- 無線インターフェース - IrDA・・・赤外線を使って無線通信を行う。障害物に弱い。 - Bluetooth・・・2.4GHの電波を使って無線通信を行う規格。障害物に強い。
基本ソフトウェア
OSの仕事
- マスタスケジューラ・・・管理プログラム。利用者から支持を受けたり、ジョブの実行状態を報告
- ジュブスケジューラ・・・マスタスケジューラから以来されたもの。リーダ、イニシエータ、ターミネータ、ライタの順で実行。
- スプーリング・・・低速な装置とのやりとりを磁気ディスクを介して行うことで処理速度を高める方法。スループットの向上
- ディスパッチャ・・・順番待ちしているタスクにCPUの使用権を割り当てる
- タスクスケジューリング・・・どのタスクに使用権を割り当てるか
- 到着式方式・・・実行可能状態になったタスク順
- 優先順方式・・・優先度順
- ラウンドロビン方式・・・一定時間ごとに切り替える
タスク管理
- 固定区画方式・・・メモリにパーティションを設けて、そこにプログラムを読み込む
- 可変区画方式・・・プログラムをロードするタイミングで必要なサイズに区切る
- オーバーレイ方式・・・プログラムをセグメント単位に分割しておき、その時必要なセグメントだけを主記憶上にロードして実行
- スワッピング方式・・・主記憶領域と補助記憶装置にプログラムを行き来させる。スワップアウト、スワップイン。
再配置可能プログラムとプログラムの4つの性質
- 再配置可能・・・どこに配置しても実行できる
- 際使用可能・・・再ロードすることなく繰り返し実行できる
- 再入可能・・・複数のタスクから呼び出しても互いに鑑賞することなく同時実行できる
- 再帰的・・・自分自身を呼び出すことができる
仮想記憶装置
繁忙期まとめ その2
サーバ周りのお話をサーバ会社やら直で企業のサーバ担当者と初めてやり取りして思ったこと。
サーバ周り
Webサイトを作る際に兎にも角にもサーバがないとどうにもならないと思うが ここの設定周りの知識は自分で一回構築してみるのが吉。 ある程度サーバとネットワーク周りの最低限の知識は必要。
主に問題になるのがサーバのスペック・インストールされているモジュール(ここらへんはCMS導入の基盤)、 メールサーバ、DBサーバ。
で、自分にサーバの知識が中途半端だから担当でやっている相手のほうが知識があると思って、
ついイエスといいがちになる。
かと思ったら以外にもあちらが分かってなかったりするもんだから困りもん。
結論相手のことはあまり信用せずに(感覚的には50%の信頼度)、 分からなかったら調べて自分で確認しながらう進めてくしかない。
あとは領域の切り分け。うちでやる範囲との線引きを最初にしっかりしておくこと。 じゃないと後で言い合いの応酬になって収集がつかなくなる。
うちはAとBはやる。あとのCとDは宜しくねという感じで。
SSL
SSLについて。これも上のサーバの話に絡むことだけど、 サーバのパターン的には
- 1.自社サーバ
- 2.相手の会社がどっかからレンタルしている。
- 3.こっちが用意する
だいだいこの3パターン。そしてこれを既存サイトがあってリニューアルする場合、 SSLの領域は、
で、サーバのパターンが1か2且つSSLのパターンが2か3の場合はしっかりご確認を。
しっかりあちらに今回は常時SSLにするのか、それともしないのか(この選択肢はもうほとんどないとおもうけど)。
で今回はSSLの領域だけ他社が管理していて、
その領域についてこちら側で直前まで認知していなくて、今回その領域の担当はうちになっていたから、
SSLをどーすんの?って話になった。
ってかリニューアル=SSLの確認って図式が頭に入ってたら別にすぐに確認とれて問題なかったとは思うんだけど、
SSL = サーバ = サーバの担当者が把握しとるやろ。だからあちらがうまいようにしてくれる。と勝手に思ってた。
言い訳だけどSSLに対する認識が薄すぎた。次回からは用チェック。
さらに仮に常時SSLにするけど、一部コンテンツはリニューアル、
残りは後日リニューアルして公開のパターンとかもあるから、その場合は後日公開のほうも勿論SSL対応しないといけないってこともお忘れなく。
運用が平行して走る
これ結構自分的に忘れてるんだけど、運用が平行して現サイトで動いていて、
リニューアルする場合、リニューアルするまでの期間の運用のボリュームを把握しておくべき。
ニュースとかかなりの頻度で更新するサイトとかは、データを持ってきてもまた直前でデータをもってこないといけなかったり、
持ってくるだけで済むならいいけど、持ってきてリニューアルように形を整形しないといけない、とかあると更に時間はかかるので。
繁忙期まとめ その1
現在のやっている案件で地味に忙しかったのでリマインドのため。
その1
こちらのプラグインは
/mt/addons/ContactForm.pack/tmpl/module_mtml.tmpl
こちらに置いてあるフォームのテンプレートをモジュールとして管理しておいて、 複数使い分けれる。フォームの形が違ってもmtifで条件わけせずに一つづつモジュールテンプレートとして 管理できる。
その2
jsonファイルを別ドメインからgetJsonで取りに行く時に引っかかった。 クロスドメイン制約やJSONPなどそこらへんは通ってきたことがなかったので勉強になった。
その3
JavaScriptで覚えておくとよいデータ構造 - 配列・オブジェクト - いろいろ解析日記
jsでのjson,配列,オブジェクトのデータ構造が頭でまとまってなかった。 MDNを読めということ。