k-likework

LIKEWORKで生きるためのブログ

Excel VBAを使用する~EXCEL VBA準備~

EXCEL VBAを使いたくなりました

なぜって、EXCELの大量のSQL全文をWORDの表に貼り付ける必要があるからです。 SQL全文を200個も貼り付けしてたら、虚しくなります。

Excel VBAは、20代の時にちょっとかじった程度で、もう色々忘れているので、思い出すためのメモ。

参考にしたサイトはこちら。

tonari-it.com

EXCEL VBAを始める準備編

EXCELに開発タブを表示する

  1. オプションメニューで[リボンのユーザ設定]を選択後、「開発」にチェックをしてOKする f:id:kodomonosora:20211021113609p:plain

  2. EXCELに開発タブが表示される f:id:kodomonosora:20211021113647p:plain

VBEを起動する

  1. 開発タブメニューから「Visual Basic」をクリックする f:id:kodomonosora:20211021113910p:plain

  2. または、ショートカットキー[Alt]+[F11]でVBE起動/閉じるが可能 f:id:kodomonosora:20211021114310p:plain

変数の宣言を強制する設定

  1. VBEのツールメニューからオプションを選択 f:id:kodomonosora:20211021114501p:plain

  2. 「変数の宣言を強制する」にチェックしてOKする f:id:kodomonosora:20211021114621p:plain

標準モジュールを挿入する

  1. 開発タブメニューの挿入メニューから、「標準モジュール」を選択する f:id:kodomonosora:20211021115416p:plain

  2. 標準モジュールが表示される f:id:kodomonosora:20211021115712p:plain

イミディエイトウィンドウを表示する

  1. 表示メニューからイミディエイトウィンドウを選択する f:id:kodomonosora:20211021120047p:plain

  2. VBEの下部にイミディエイトウィンドウが表示される f:id:kodomonosora:20211021120156p:plain

VBAプログラムの保存方法

  1. VBE、またはExcelから保存可能
  2. 保存する際は、「EXCELマクロ有効ブック(*.xlsm)」を選択する

自宅でスキルアップ①

本格的に在宅勤務になって、3週目。オンライン講座など受講履歴と感想

2020年4月6日~12日

udemy

udemyはたまに使うのですが、今、無料コースを結構出しています。

  • Excel超入門者 限定】本やセミナーを買う前に、最低限これだけは知っておきたい25の機能を速習する90分の無料ツアー/講師:エクセル兄さん たてばやし淳さん
    • --> 1.5倍速で視聴。基本的なスキルを確認。レベルアップした内容を視聴予定です。
  • Inkscape(インクスケープ)でプロ級販促物を作成できる実践講座(ウォーミングアップ編)/講師:シュムデザイン 新里拓也さん
  • --> 前に独学したときは、操作が良く分からなくてなんとなく使った感じだったので。視聴してみたら、想像していない操作性に、自分の感性の古さを感じました。。。 Inkscapeを個人的に使えるようになりたいので、もっと学びたいと思いました。

会社指定のeラーニング

  • コンプライアンスや職場ハラスメント
    • 会社法は面白かった。人材サービスの営業は知っている内容が多い。技術者は知らない人が多いのかな?

【試験対策1】Oracleデータベース管理の概要

Oracle Master Bronze DBA(12c)の試験勉強の備忘録①

ここでは、下記3つについてまとめます。

  • リレーショナルデータベース
  • SQL分類
  • Oracle Database管理ツール

リレーショナルデータベース

データベースの種類

  • リレーショナル型データモデル(一番多く普及)
  • 階層型データモデル
  • ネットワーク型データモデル
  • キーバリュー型データモデル(データをKEYとVALUEで管理)

リレーショナル型データベースとは?

  • Relational Databaseで、略してRDB(アールデービー)と呼ぶ
  • 行(レコード)と列(カラム)を管理した2次元の表(テーブル)という単位で、データを管理する
  • 1つのデータベースで、1つまたは2つ以上の表を管理できる
  • データベースの管理のしやすさから、複数の表で管理することが一般的
  • 行と列が交差する部分をフィールドと呼び、最大1つの値を格納できる (逆に複数の値は1つのフィールドで管理不可)
  • 複数の表で管理されているデータを関連付けをフィールドの値で行う

OracleRDBMS

リレーショナルデータベースの操作方法

  • SQLと呼ばれるデータベース言語を使用してデータを操作する
  • データ操作する時は、操作したい表に対してアクセスするだけ
  • データ同士の関連やアクセス経路などの物理的構造は意識しない
  • フィールドに値が格納されていない状態をNULL(NULL値)と呼び、空白(スペース)やゼロ(0)とは区別される

SQLの分類

SQLとは?

  • SQLANSI(米国規格協会)やISO(国際標準化機構)で標準規格化されている国際標準のデータベース 言語
  • 主なリレーショナルデータベースでサポートされている
  • SQLはデータを論理的に処理する
  • データへの経路が自動的に決まるので物理構造の意識は不要

SQL分類と操作

  • データ操作言語:DML(Data Manipulation Language)

    • SELECT:データの問い合わせ
    • INSERT|新規データの挿入
    • UPDATA:既存データの更新
    • DELETE:既存データの削除
    • MERGE:既存データの更新、削除、および新規データの挿入
  • データ定義言語:DDL(Data Definition Language)

    • CREATE:新規オブジェクトの作成
    • ALTER:オブジェクト定義の変更
    • DROP:オブジェクトの削除
    • RENAME:オブジェクト名の変更
    • TRUNCATE:表の切り捨て(全行削除)
  • データ制御言語:DCL(Data Control Language)

    • GRANT:アクセス権限の付与
    • REVOKE:アクセス権限の削除
  • トランザクション制御

  • 注釈

    • DDL文の実行前後で現在のトランザクションがコミットされる
    • ALTER TABLE文を実行する場合、処理対象の表に排他的アクセスする
    • DELETEでデータ削除する場合:REDOログに残し、コミットすることで削除完了する。コミット実行前にロールバックが可能
    • TRUNCATEでデータ削除する場合:REDOログに残さないため、ロールバックはできない。REDOログに残さない分、DELTEよりも高速に処理する

Oracle Databaseの管理ツール

  • インストール、アップグレードに関するツール

    • Oracle Universal Installer(OUI):Oracleソフトウエアをインストールするツール
    • Database Coonfiguration Assistant(DBCA):Oracleデータベース(PDB含む)を作成するツール、データベース、インスタンスの追加、EX Expressの構成も含む
    • Database Upgrade Assistant(DBUA):Oracleデータベースを新しいバージョンにアップグレードするツール
  • ネットワークに関するツール

    • Oracle Net Configuration Assinstant:Oracleデータベースのネットワークをインストール時に自動で構成するツール
    • Oracle Net Manager:Oracle Net Servisesを構成するツール
  • インスタンスとデータベースを管理するツール

    • Oracle Enterprise Manager Cloud Control(Cloud Control):複数データベースを集中管理及び監視する統合ツール
    • Oracle Enterprise Manager Database Express(EM Express):基本的な構成管理機能とパフォーマンス診断やチューニング機能を持ったツール
    • SQL *Plus:SQLを対話的に実行するコマンドラインインタフェースのツール
    • Recovery Manager(RMAN):Oracleデータベースのバックアップ、リストア、リカバリを実行するユーティリティツール
    • Data Pump:データベース間のデータを高速に転送するツール(10g以降から標準)
    • SQL*Loader:外部データファイル(CSV、TSVや固定長のテキストなど)のデータを表にロードするツール

データベース管理者(DBA)の仕事

  • データベース構築に関する作業

    • Oracleソフトウエアのインストール
    • データベースの作成
    • データベースのアップグレード
  • データベースの運用管理に関する作業

    • データベースの起動・停止
    • データベースの記憶域構造の管理
    • ユーザ、アカウントとセキュリティの管理
    • 表、索引、ビューなどのスキーマオブジェクトの管理
    • データベースのバックアップの実行
    • データベースの監視および障害予防処置
    • データベースのパフォーマンスの監視およびチューニング
  • トラブルシューティング

Oracle Master Silver(12c)取得までの道

Oracle Master Silver(12c)取得

2006年にOracle Master9i Silverを取得して以来、そこまでOracleを使用することなく来ましたが、 今、ツールを使用してOracleをはじめとするデータベースの性能をみる仕事に関わっています。

今の仕事についてから、Oracleの資格試験用の本は見てこなかったのですが、今年はOracle Master12cの本で体系的に勉強してみようと思います。 他にも勉強したいことがあるので、毎日30分だけコツコツやりたいと思います。(ブログにアップするのは毎日ではないかも‥‥)

取得までのフロー

本日現在(2020/01/14)、「徹底攻略ORACLE MASTER Bronze DBA 12c 問題集[1Z0-065]対応」2章目を完了しました。 来週末には、模擬試験を受けて、次のステップに行けるかどうか分かります。

では、がんばる。

Oracle Racをインストールした時のWindowsサービス

メモ:Windows ServerにOracleRacをインストールした時のWindowsサービスがよく分からなかったのでメモ。 Singleインスタンスの場合は、ListnerサービスとOracleサービスだけ意識すれば良いのに‥

環境

  • Windows Server :2008R2
  • Oracle Version:11.2.0.1 2Node Rac
  • Oracle SID :ORA11G2
  • instance_name:ora11gr21/ora11gr22
  • Oracle Home:c:\app\administrator\product\11.2.0\dbhome_1\

Windows サービス

1NodeにあるWindowsサービスを確認します。

クラスタウエア

Oracle Object Service

  • 実行ファイル:C:\app\11.2.0\grid\bin\OracleOBJService.exe
  • 起動オプション:自動
  • OS起動時に起動しているか:○
  • 概要:Oracle Clusterwareプロセスの1つ。

OracleOHService

  • 実行ファイル:C:\app\11.2.0\grid\bin\ohasd.exe serviceOracleOHService
  • 起動オプション:自動
  • OS起動時に起動しているか:○
  • 概要:Oracle Clusterwareプロセスの1つ。すべてのOracle Clusterwareデーモンを起動する。

ASM(※1)

OracleASMService+ASM1

  • 実行ファイル:c:\app\11.2.0\grid\bin\ORACLE.EXE +ASM1
  • 起動オプション:手動
  • OS起動時に起動しているか:○
  • 概要:Oracle10gで追加されたサービス。OracleASMを使用する場合に限って作成されるサービス。ASMインスタンスを制御する。

Listner

OracleOraCrs11g_home1TNSListener(※1)

  • 実行ファイル:C:\app\11.2.0\grid\BIN\TNSLSNR
  • 起動オプション:手動
  • OS起動時に起動しているか:○
  • 概要:クライアントからのネットワーク接続を受け付ける際のリスナープロセス用のサービス。

OracleOraCrs11g_home1TNSListenerLISTENER_SCAN1(※2)

  • 実行ファイル:C:\app\11.2.0\grid\BIN\TNSLSNR
  • 起動オプション:手動
  • OS起動時に起動しているか:○(いずれかのNodeで起動する)
  • 概要:SCAN VIPからの接続を受け付ける際のリスナープロセス用サービス。

OracleOraCrs11g_home1TNSListenerLISTENER_SCAN2(※2)

  • 実行ファイル:C:\app\11.2.0\grid\BIN\TNSLSNR
  • 起動オプション:手動
  • OS起動時に起動しているか:○(いずれかのNodeで起動する)
  • 概要:SCAN VIPからの接続を受け付ける際のリスナープロセス用サービス。

OracleOraCrs11g_home1TNSListenerLISTENER_SCAN3(※2)

  • 実行ファイル:C:\app\11.2.0\grid\BIN\TNSLSNR
  • 起動オプション:手動
  • OS起動時に起動しているか:○(いずれかのNodeで起動する)
  • 概要:SCAN VIPからの接続を受け付ける際のリスナープロセス用サービス。

DB(※2)

OracleServiceORA11GR21

  • 実行ファイル:c:\app\administrator\product\11.2.0\dbhome_1\bin\ORACLE.EXE ORA11GR21
  • 起動オプション:手動
  • OS起動時に起動しているか:○
  • 概要:Oracle本体のサービス。

その他

OracleDBConsoleORA11GR2

  • 実行ファイル:C:\app\Administrator\product\11.2.0\dbhome_1\bin\nmesrvc.exe
  • 起動オプション:自動
  • OS起動時に起動しているか:○
  • 概要:OracleEnterpriseManger(OEM)を使用する場合、起動必須。

OracleMTSRecoveryService

  • 実行ファイル:C:\app\Administrator\product\11.2.0\dbhome_1\bin\omtsreco.exe "OracleMTSRecoveryService"
  • 起動オプション:自動
  • OS起動時に起動しているか:○
  • 概要:Microsoft Transaction Server(MTS=Microsoft社のトランザクションサーバ)を使用する場合のみ使用する。

OracleRemExecService

  • 実行ファイル:"C:\Users\ADMINI~1\AppData\Local\Temp\2\ oraremservice\RemoteExecService.exe"
  • 起動オプション:無効
  • OS起動時に起動しているか:○(OS起動時に作成されて起動する)
  • 概要:10.1 以降の Windows プラットフォームにおいて、RACのインストールや PSR 適用時のファイル転送等で使用される。 サービスの停止や OS再起動等で、サービス一覧からは削除され、OS起動時に作成されて、起動する。

OracleJobSchedulerORA11GR21

  • 実行ファイル:c:\app\administrator\product\11.2.0\dbhome_1\Bin\extjob.exe ORA11GR21
  • 起動オプション:無効
  • OS起動時に起動しているか:✖
  • 概要:Oracle10gR2で追加されたサービス。Windows上にインストールされたOracle以外のプログラムを、 Oracleからスケジュール実行する場合、当サービスを起動しておく必要がある。

OracleOraDb11g_home1ClrAgent

  • 実行ファイル:C:\app\Administrator\product\11.2.0\dbhome_1\bin\OraClrAgnt.exe agent_sid=CLRExtProc max_dispatchers=2 tcp_dispatchers=0 max_task_threads=6 max_sessions=25 ENVS="EXTPROC_DLLS=ONLY: C:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll"
  • 起動オプション:手動
  • OS起動時に起動しているか:✖
  • 概要:Oracle10gR2で追加されたサービス。Oracle DataBase Extension for .Net(ODE.net)と呼ばれる機能を使い、 .Netで記述したプログラムをOracle内で実行する。

OracleVssWriterORA11GR21

  • 実行ファイル:c:\app\administrator\product\11.2.0\dbhome_1\bin\OraVSSW.exe ORA11GR21
  • 起動オプション:手動
  • OS起動時に起動しているか:✖
  • 概要:Oracle11gで追加されたサービス。Oracleと他のVSSコンポーネント間のコーディネータとして機能する。

(※1)OS起動時にgrid Infrastructureは自動起動により、ASMも自動起動します。 (※2)クラスタリソース(db、vip、scan)の自動起動設定は、デフォルト AUTO_START=restore(サーバー停止時と同じ状態に戻す)の設定が適用されます。 「crsctl status resource -p」で設定内容が確認できます。

参考: docs.oracle.com

WindowsへのOracle Databaseインストール(11g)

個人メモ:Windows版にOracle11gをインストールしたメモ

インストールファイル

  • ダウンロードした2つのインストールファイルを展開します。
    • win64_11gR2_database_1of2
    • win64_11gR2_database_2of2

インストール手順

  1. 展開したdatabase内の「setup.exe」をダブルクリックします。 f:id:kodomonosora:20190123115401p:plain

  2. インストーラが起動するので、順次設定していきます。 f:id:kodomonosora:20190123115606p:plain

  3. インストールオプション、システムクラスをデフォルトで進みます。 f:id:kodomonosora:20190123115648p:plain

  4. 標準インストールで、管理パスワードを設定して進みます。 f:id:kodomonosora:20190123120037p:plain

  5. 前提条件のチェック後、サマリーでインストール内容が表示されます。[終了]をクリックすると、インストールが始まります。 f:id:kodomonosora:20190123120208p:plain

  6. Database configuration Assistantで、DataBaseの作成も行われます。 f:id:kodomonosora:20190123121512p:plain

  7. Databaseの作成も完了したら、[OK]ボタンをクリックします。 f:id:kodomonosora:20190123122723p:plain

  8. インストーラで[閉じる]をクリックします。

インストールのテスト

▼Database Control のホームページを確認

  1. ブラウザを起動し、次のURLを入力します。
https://<hostname>:1158/em

{hostname}は、マシン名、IPアドレス、またはlocalhostなどが入力できます。

  1. ログインID「SYSTEM」、パスワード「インストール時に設定したパスワード」を入力して、 [ログイン]をクリックします。 f:id:kodomonosora:20190123123244p:plain

  2. Database Control のホームページが表示されたらインストールは完了です。 f:id:kodomonosora:20190123123456p:plain

Oracleサービスを確認

  1. スタートから表示する検索ウインドウで「services.msc」を入力すると、サービス画面が表示されます。 f:id:kodomonosora:20190123123849p:plain

  2. サービス名「OracleService<インスタンス名>」があり、状態が「開始」となっていれば、インストールされて、サービスが起動しています。 f:id:kodomonosora:20190123124033p:plain

SQL*Plusで接続

sqlplus /nolog
conn /as sysdba
select * from v$instance;

f:id:kodomonosora:20190123124706p:plain

タスクスケジューラとSCHTASKSコマンド

個人メモ:タスクスケジューラから起動停止しているプロセスをコマンドで実行したいと言われて確認したメモ

タスクスケジューラとは

  • 定期的な作業を効率化することが出来るWindowsのタスク管理機能
  • Windowsの標準機能

f:id:kodomonosora:20190109152202p:plain

タスクスケジューラのタスクを画面から操作

▼タスク登録

f:id:kodomonosora:20190109124555p:plain

その後は、作成ウィザードに沿って登録します。 f:id:kodomonosora:20190109125847p:plain 実行スケジュールを入力 f:id:kodomonosora:20190109125919p:plain タスクの種類を選択 f:id:kodomonosora:20190109125931p:plain 実行スクリプトを登録 f:id:kodomonosora:20190109130005p:plain

# Chromeを起動するスクリプトを入力(スクリプトファイルの登録でも可)
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --new-window

作成完了 f:id:kodomonosora:20190109130159p:plain

ログオンするとすぐにChromeが起動しました!

▼タスク実行

f:id:kodomonosora:20190109154340p:plain

▼タスク終了

f:id:kodomonosora:20190109154702p:plain

タスクスケジューラのタスクをコマンドから操作

同じことをコマンドプロンプトでSCHTASKSコマンドを使ってやってみます。

▼タスク登録

まず、SCHTASKSコマンドの使用方法を確認します。 SCHTASKS /?でヘルプを見ます。

パラメーターの一覧:
    /Create         スケジュール タスクを新しく作成します。
    /Delete         スケジュール タスクを削除します。
    /Query          スケジュール タスクをすべて表示します。
    /Change         スケジュール タスクのプロパティを変更します。
    /Run            スケジュールされているタスクをオン デマンドで実行します。
    /End            現在実行中のスケジュール タスクを停止します。
    /ShowSid        スケジュールされたタスクの名前に対応するセキュリティ ID を表示します。
    /?              このヘルプを表示します。

Examples:
    SCHTASKS
    SCHTASKS /?
    SCHTASKS /Run /?
    SCHTASKS /End /?
    SCHTASKS /Create /?
    SCHTASKS /Delete /?
    SCHTASKS /Query  /?
    SCHTASKS /Change /?
    SCHTASKS /ShowSid /?

それから、SCHTASKS /Create /?でヘルプを見ます。

SCHTASKS /Create [/S システム [/U ユーザー名 [/P [パスワード]]]]
    [/RU ユーザー名 [/RP パスワード]] /SC スケジュール [/MO 修飾子] [/D 日]
    [/M 月] [/I アイドル時間] /TN タスク名 /TR 実行タスク [/ST 開始時刻]
    [/RI 間隔] [ {/ET 終了時刻 | /DU 継続時間} [/K] [/XML xml ファイル] [/V1]]
    [/SD 開始日] [/ED 終了日] [/IT | /NP] [/Z] [/F] [/HRESULT] [/?]

作成したいタスク内容はこんな感じかな。早速作成してみる。

C:\Users\Administrator>SCHTASKS /Create /RU WIN-E26VDI0PBGE\Administrator /SC ONLOGON /TN CMD_StartChrome /TR "C:\Windows\System32\startchrome.bat"
成功: スケジュール タスク "CMD_StartChrome" は正しく作成されました。

タスクスケジューラを確認すると作成されていました。 f:id:kodomonosora:20190109152827p:plain

ログオンし直すと、Chromeが起動しました!

気になるのがSCHTASKS /Createコマンドでタスクを作成するとログオン時のユーザが指定できない。 f:id:kodomonosora:20190109153212p:plain

一応、タスクの[プロパティ]-[トリガーの編集]から変更できるようだけどコマンドでできる方法はないのかな? f:id:kodomonosora:20190109153305p:plain

▼タスク実行

C:\Users\Administrator>SCHTASKS /End /TN CMD_StartChrome
成功: スケジュール タスク "CMD_StartChrome" は正しく中断されました。

▼タスク終了

C:\Users\Administrator>SCHTASKS /Run /TN CMD_StartChrome
成功: スケジュール タスク "CMD_StartChrome" の実行が試行されました。

バックアップやPC起動時のアプリ起動などしておくと便利だな。