VBAの基本

モジュール:構成要素、部品
モジュールの中にプロシージャを構成

プロシージャ:手続き、手順

プログラムにおいて一連の処理をまとめたもの

①プログラムの構造

Sub プロシージャ名()
       (処理)
End Sub

②基本的なルール

・処理は改行で区切る
・処理のまとまりをインデント(字下げ)で指定する
・文字列は""で囲む
・コメントは'以降で指定

③セルの指定方法

Cells(行, 列).Value
(例)Cells(3, 2).value = 10
Range("セル範囲").Value = 10
(例)Range("B1").Value = 10, Range("B1:C1").Value = 20

④フォームコントロールの出し方

開発→挿入→(ここで設定)

⑤変数

大文字と小文字は区別しない

⑥データ型

Dim 変数名 As データ型

宣言と同時に初期化はできない

データ型を宣言しないとVariant型になるメモリを食う

変数のデータ型を指定するとデータの意味合いがわかりやすくなる

データ型一覧

 

⑦配列

⑦演算

 

演算



VBA概要・設定

VBA概要

VBA初期設定
ファイル→オプション→リボンのユーザー設定→右側の開発のチェックボックスにチェック(ここで調節)

マクロの有効無効設定

ファイル→オプション→セキュリティセンター→セキュリティセンターの設定→マクロの設定→(ここで調節)

標準モジュールは挿入メニューから

文字の大きさ設定

ツール→オプション→エディターの設定→(ここで調節)

抽象クラス

抽象クラスとは、抽象メソッドを1つ以上持つクラスのこと

抽象メソッドとは定義だけで処理を書かないメソッド

抽象クラスは「abstract修飾子」を使って定義する
抽象メソッドにも「abstract修飾子」を使う
子クラスは抽象メソッドをオーバーライドする

 

抽象メソッドは子クラスで必ず実装する必要があり、実装しないとコンパイルエラーになる

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
</head>
<body>
    <form th:action="@{/}" method="post" th:object="${sampleListInput}">
        <div th:each="sampleInput : ${sampleListInput.sampleList}">
            <input type="checkbox" th:field="*{sampleList[__${sampleInputStat.index}__].checkbox}" th:checked="${sampleInput.checkbox}" />
            <!-- You can access other properties of sampleInput as needed -->
            <input type="text" th:field="*{sampleList[__${sampleInputStat.index}__].userName}" th:value="${sampleInput.userName}" />
        </div>
        <input type="submit">
    </form>
</body>

Spring 基礎

Spring Boot DIフレームワークであるSpring Frameworkをベースとしたアプリケーションを開発するためのフレームワーク

 

AOP(Aspect Oriented Programming, アスペクト指向プログラミング)

Spring Tool Suite(STS

オープンソースの開発環境である「Eclipse」や「Visual Studio Code」にインストールする機能拡張プログラムとして提供される専用開発ツール。

 

DI(Dependents Injection, 依存性注入) 「依存性の注入」の「注入」は、「インスタンスの代入」。それぞれのクラスでnewする必要が無くなる。newしなければならない依存性を抑える。

DIコンテナ 実行時、アプリケーション内をスキャンして必要なBeanオブジェクトがまとめて保管される。@Autowiredでフィールドにインスタンスを割り付ける。

↓包含関係

アプリケーション(DIコンテナ(Bean, Controller, Repository, Service, Component, Configuration))

 

Bean Javaで書かれた再利用可能なクラスのこと(JavaBeansとよく耳にする)

@SpringBootApplication アプリケーションのBean

@Controller コントローラーBean

@RestController RestコントローラーBean

これらは具体的な役割が設定されているので自分で@Autowiredはせず、クラスを書いてアノテーションをつければSpringのプログラムによって勝手に利用される。

アノテーション(@) 「注釈」という意味です。Javadocコメントは開発者に対してプログラムがどういうものかを説明するために使いましたが、これと同様に、コンパイラや実行環境に対してプログラムがどういうものかを伝えたいことがあります。Javaではアノテーションをプログラムに記述することにより、コンパイラで出力される警告メッセージを抑制したり、実行環境によってプログラムの動作を変更したりできます。どのアノテーションインスタンスをBeanとしてDIコンテナに登録するという働きは同じ。

 

@Bean 基本のBeanアノテーション。メソッドにつける。

@Component 再利用可能なコンポーネントアノテーション

@Service サービスとしていつでも呼び出せるクラスのアノテーション

@Repository データベースアクセスのためのアノテーション

これらのクラスとメソッドはインスタンスをDIコンテナに保管し自分で@Autowiredによってフィールドなどに割り当てて利用する。

 

Bean関係アノテーションに含まれるもの

@Bean | @Target, @Retention, @Document

@Component | @Target, @Retention, @Doument, @indexed

@Service | @Component, @Target, @Retention, @Documented

 

@Target アノテーションが実装可能である

@Retention アノテーションの保持範囲を示す

@Documented 付加した情報をドキュメントに反映する

@Indexed インデックスを付加する

Serviceの役割

サービスは、ビジネスロジックやアプリケーションの振る舞いを抽象化し
モデルやコントローラーから分離するためのコンポーネントです。
サービスは、データの取得、加工、バリデーション、外部サービスとの連携など、ビジネスロジックの具体的な処理を担当します。
これにより、コントローラーやモデルが煩雑になるのを防ぎ、コードの再利用性や保守性を向上させます。

Repositoryの役割

リポジトリは、データの永続化やデータソースとのやり取りを抽象化するためのコンポーネントです。
リポジトリは、データの取得、保存、更新、削除などの操作を提供し、データベースや外部データソースとの通信を隠蔽します。
これにより、モデルやサービスからデータアクセスの詳細を分離し、データアクセスの切り替えやテスト容易性の向上を実現します。

ServiceとRepositoryの導入は、MVCアーキテクチャパターンをより柔軟にし
ビジネスロジックとデータアクセスの責任を適切に分離する。

 

ネットワーク メモ

LAN 限定したエリアで接続できるプライベートネットワーク。

有線LAN LANケーブルというインターネット接続専用のケーブルを使ってインターネットに接続する。

【有線接続のメリット】

ケーブルを繋ぐだけで手軽にネットワーク構築できる
ケーブルで物理的に接続するため通信が安定しやすい
無線接続よりもセキュリティ面で安心できる

【有線接続のデメリット】

ケーブルが邪魔になったり配線がごちゃごちゃになりやすい
ケーブルが届く範囲でしかパソコンなどの機器を接続できない

無線LAN ケーブルを使わずに無線通信によりインターネットに接続する。無線LAN通信を行うには、親機(一般的にはWi-Fiルーター)と子機(一般的にはパソコンなどに内蔵)が必要

【無線接続のメリット】

電波の届く範囲ならどこからでもインターネットに接続できる
ケーブルの配線が不要でデスク周りなどがスッキリする

【無線接続のデメリット】

家電やBluetoothなど他の電波の干渉を受けやすく、不安定になりやすい
通信内容の傍受(盗聴)の危険性がありセキュリティ強化が必要


企業で社内ネットワーク(LAN)を構築するにあたって、課題となりやすいのが次の4点。

通信速度の問題
セキュリティ問題
構築・運用コスト増
リモートアクセスへの対応

課題①通信速度の問題
快適な通信をおこなうためには、一定の基準以上の通信速度を満たす必要があります。

どのくらいの速度がベストなのかは業務にもよりますが、例えばZoomなどのオンライン会議が多いなら80Mbps程度出ると十分でしょう。

なお通信速度が低下する原因としては、主に以下4つが考えられます。

ネットワークに接続する端末数の増加
ネットワークで通信するデータ量の増加
ネットワーク機材の老朽化
規格の陳腐化

企業に推奨する対策
通信速度が遅いときの有効な対策としては、以下の4つが挙げられます。

スピードテストの実施
社内ネットワークが遅い箇所を特定するために行います。
他の要素はなるべく排除した状態で、「ルーター」「スイッチングハブ」「ハブ」「アクセスポイント」ごとにパソコンを接続して、回線の速度を計測しましょう。

ネットワーク機器のリプレイス
各種機器の最大通信速度を見直し、速度が出ない古いものは入れ替えましょう。

LANケーブルのリプレイス
少なくともカテゴリ5e以上のものを利用するのがおすすめです。
カテゴリが上位のものほど安定した通信が可能になるため、オフィス環境に合ったものを選択しましょう。

無線LANアクセスポイントの見直し
どの通信規格に対応しているかによって、最大通信速度や周波数帯が変わってきます。
まずは無線LANアクセスポイントの周波数帯を変更してみて、通信速度が変わるかどうか確認してみましょう

(参考)LANケーブルのカテゴリごとの伝送帯域と最大通信速度

カテゴリ            5    5e    6    6A    7    7A    8
伝送帯域           100MHz    100MHz    250MHz    500MHz    600MHz    1000MH 2000MHz
最大通信速度    100Mbps    1Gbps    1Gbps    10Gbps    10Gbps    10Gbps    40Gbps

参考)無線LANアクセスポイントの通信規格・最大通信速度・周波数帯

規格名    最大通信速度    周波数帯
Wi-Fi 6E IEEE 802.11ax    9.6Gbps    2.4GHz/5GHz/6GHz
Wi-Fi 6                           2.4GHz/5GHz
Wi-Fi 5    IEEE 802.11ac    6.9Gbps    5GHz
Wi-Fi 4    IEEE 802.11n    600Mbps    2.4GHz/5GHz

なお無線LANは、他の機器が発する電波や障害物などに弱いという特徴があるため、無線LANアクセスポイントの設置場所を見直すだけでも通信速度が変わる可能性があります。

また対応している通信規格が上位になるほど、通信速度が速くなり障害物にも強くなる可能性が高いため、必要であれば無線LANアクセスポイントのリプレイスも検討してみてください。

課題②セキュリティ問題

企業に推奨する対策
企業でのセキュリティ対策としては以下があげられます。

OSやソフトウェアなどを最新の状態に保つこと
古いバージョンを使用していると、既知の脆弱性を抱えたままの状態になってしまいます。
最新の状態に保つことで攻撃を受けるリスクを減らせるため、定期的に更新するフローを確立させましょう。

UTM(統合脅威管理機器)を導入すること
UTMは多様なセキュリティ機能を統合した、企業のネットワークをウイルスやハッキングなどの脅威から効率的かつ包括的に守るセキュリティ機器です。

セキュリティスイッチによりネットワークを分割すること
ネットワーク分割により、万が一感染した場合の被害を最小限に抑えられます。
また外部や内部の感染PCによる攻撃を検知してブロックする機能もあります。

課題③構築・運用コスト増

外部の運用管理サービスやツールを導入する
ネットワーク運用作業を外部に任せることにより、運用の効率化にともなうコスト削減が期待できます。

SDN(Software Defined Networking)を導入する
ソフトウェアでネットワークを管理する技術を指します。
社内のルータースイッチングハブなどの操作や設定をまとめて行えるため、運用コストが削減可能です。

SD-WAN(Software defined-Wide Area Network)を導入する
SDN(ソフトウェアを介してネットワーク機器を一括制御する技術)をWANに適用したものです。
これにより1つのLANだけでなくWANにも範囲を広げ、複数拠点間のネットワーク機器の操作や設定をまとめて行えます。

課題④リモートアクセスへの対応

企業に推奨する対策
リモートアクセスでの不正アクセスや情報漏えい防止への対応としては、以下の4つが挙げられます。

VPNを利用する
インターネット上に仮想の専用線を設定し、特定の人のみが利用できる専用ネットワーク。

ユーザー認証を利用する
ユーザーが特定のアクションを実行する際に、正当な利用者であることを確認する機能。

データの暗号化を行う
元となるデジタルデータを違う文字列のデータに変換し、解読できない状態にすること。

ログ監視を行う
サーバーやネットワーク機器、アプリケーション、パソコンなどのデバイスの動作履歴(ログ)を監視・記録すること。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
WAN LANとLAN同士を繋ぐ(離れた拠点同士を繋ぐ)大きなネットワーク。

LANは限定的なエリアのネットワークであった一方で、WANは遠く離れた場所と繋がっているネットワークであり、広い範囲で接続できる点が最大の特徴。WANを世界規模で実現しているのが「インターネット」で、LAN同士が繋がりWANという大きなネットワークが構築されることで、世界中の人たちと自在にコミュニケーションが可能となっている。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
①ネットワーク範囲の違い
LANはオフィスなどの建物内で構築された狭い範囲のネットワークで、WANは点在するLANが集合した遠く離れた拠点を結ぶ広範囲のネットワークです。

簡潔にまとめると、オフィス内の限定されたネットワークが「LAN」であって、異なる拠点のネットワークは「WAN」で接続できるということです。

②構築・管理・運用の違い
構築・管理・運用に関して、LANは企業側が行う一方で、WANはプロバイダー側が行います。

例えばオフィスでネットを使うにはプロバイダーの契約が必要であるように、WANを利用するには、WANサービスを契約して各拠点のネットワークに繋ぐ必要があります。

なお、狭い範囲に限られるLANと、広範囲でアクセスできるWANの2つが組み合わさることによって実現するのがインターネット通信です。

③構成する機器の違い
はじめに、LANを構築する機器としては主に以下の4つです。

LANケーブル:パソコンなどの機器同士を有線接続するケーブル
ハブ:複数のケーブルを接続し、中継や分岐を行う機器
ルーター:異なるネットワーク間を相互に接続する機器
アクセスポイント:ルーターに接続し、ルーターとデバイスを接続する機器

一方でWANは、大きく分けると以下の2つの機器から構成されます。

DTE(Data Terminal Equipment)
データ通信するユーザーのPCやルーターなどを指す。データ端末装置とも呼ばれる。

DCE(Data Circuit-Terminating Equipment)
DTEやWANから送られてきた信号を、送信先に合わせて変換して送信する装置で、モデム(アナログ回線の信号をデジタル信号に変換する装置)などの機器を指す。データ回線終端装置とも呼ばれる。

IPアドレスの種類の違い

IPアドレスの総数には限りがあることから、枯渇を防ぐためLANとWANでは以下のように種類分けされています。

WAN:グローバルIPアドレスといい、外部と区別できるアドレス
LAN:プライベートIPアドレスといい、特定のLAN内だけで使えるアドレス

「プライベートIPアドレス」は、ルーターがそれぞれのPCを識別するために割り当てるもので、外部からは見えないため比較的自由に設定できます。

プライベートIPアドレスはそのLAN内に限定して割り当てられる番号なので、他のLANで使用しているIPアドレスと重複しても問題ありません。

一方「グローバルIPアドレス」は、自宅に住所が割り当てられるのと同じように、インターネットにおいて通信先を識別するために割り当てられるものです。

住所が重複しないのと同じように、グローバルIPアドレスは重複することはありません。

なおグローバルIPアドレスは、基本的にプロバイダと契約してインターネットを使い始めた時点でルーターに割り当てられます。

LAN/WANと「インターネット」の違い
・LANは狭い範囲のネットワーク
・WANはLANとLANを繋ぐ大きなネットワーク
・インターネットは誰でも自由にアクセスできる開かれたネットワーク
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

VPN 拠点間に仮想的な専用ネットワークを構築する技術やサービス。インターネット上に仮想の専用線を設定し、特定の人のみが利用できる専用ネットワークのことです。
簡単にいうと、VPN接続をすればデバイスとインターネットの間に安全なトンネルを確立できるため、不正アクセスなどのセキュリティ脅威から守ることができます。WANの一種で、LANとLANの間を仮想的なプライベートネットワークで繋ぐ技術です。VPNを利用すれば、通信の「暗号化」などによりセキュリティを強化できるため、個人情報や機密情報といったデータのやりとりを行う際に利用されています。

企業向けのWANサービスとして一般的なのは、以下の3つ

1.IP-VPN
通信事業者の閉鎖型ネットワークで構築するVPN。セキュリティや通信品質の点で、より専用線に近い環境で利用できる。

2.インターネットVPN
インターネット回線を用いるVPN。比較的安価に構築できるが、自社でセキュリティの確保などが必要。

3.広域イーサネット
通信事業者の閉域ネットワークを利用して仮想のネットワークを構築するVPN。通信品質やLAN同士の繋げやすさが強み。