57
2011/4/122009/ 08/26 Copyright Newcom Co.,Ltd. 1 2011/4/12 株式会社ニューコム dbSheetClient Ver 5.1 開発初級セミナー② (テクニカル情報)

dbSheetClient Ver 5④ ループ処理から強制的に抜け出す条件を 2種類 指定することができます。 ⑤ 汎用パラメータ7~9(EXIT判定1関連)、汎用パラメータ10~12(EXIT判定2関連)のどちらかが

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 1 2011/4/12

株式会社ニューコム

dbSheetClient Ver 5.1

開発初級セミナー② (テクニカル情報)

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 2 2011/4/12

タイトル ページ

(1)開発支援マニュアル ①オンラインヘルプ ②電子マニュアル(PDFファイル)

5 5 6

(2)dbSheetClientの開発手法 ①dbSheetClient の構成と動作環境 ②プロジェクトの開発手順 ③サーバー版でのリソースの登録 ④プロジェクトの開発 と ユーザへの公開 ⑤プロジェクト定義情報とExcelブックのアップロード ⑥タスクタイプの種類

7 7 8 9

10 11 12

(3)dbSheetClientの各種定義シート

①プロジェクト定義編集の概要

②14種類の定義シート と プロジェクト実行時の連携イメージ

③定義シート間の連携から見たプロジェクトの構造図 ④各定義シート相互間のリンク

⑤メニュー定義 → ボタン定義 → タスク定義のリンク

⑥メニュー定義 → ボタン一覧定義 → ボタン定義 のリンク

⑦タスク定義 → クエリー定義 → 展開定義 のリンク

⑧タスク一覧定義 → タスク定義 のリンク

⑨タスク一覧定義 → 開始終了定義 のリンク

⑩展開一覧定義 → 展開定義 のリンク

⑪ボタンセットNO、タスクNO、展開NOの番号手動指定

⑫DB定義 → DB運用定義 のリンク

⑬ブック定義 → ブック運用定義 のリンク

13

13

14

15

16

17

18

19

20

21

22

23

24

25

目次

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 3 2011/4/12

タイトル ページ

(4)dbSheetClientエンジンの処理フロー

①プロジェクト選択後の開始処理

②メニューをクリックしたときの処理

③ボタンをクリックしたときの処理

④タスク内の処理

⑤データベースからのデータ照会処理

⑥データベースに対するデータ更新処理

26

26

28

29

30

31

32

(5)各種処理フローの定義方法

①直線型 フロー

②分岐型(CASE型) フロー

③ループ型 フロー

33

33

35

37

(6)データ照会の定義方法

①データ照会のための各種タスクタイプ

②201.SQL 照会 : 全選択データ一括展開方式の例

③203.データ照会画面の例

④204.検索付データ照会画面の例

⑤パラメータを利用したデータ照会

39

39

40

41

42

43

(7)データ更新の定義方法と排他制御

①データ更新のためのタスクタイプ

②悲観的同時実行制御(悲観的ロック方式)

③楽観的同時実行制御(楽観的ロック方式)

④「DBS同時実行制御フィールド」を利用したデータ更新処理

44 44 45 45 46

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 4 2011/4/12

タイトル ページ

⑤IOTG:自動プログラミング機能(INシート、EDITシート、OUTシートを利用した更新処理)

⑥データ更新の種類

⑦データ更新時の注意事項

47 49 50

(8)権限管理 ①ユーザに付与される権限

②グループごとに付与される権限

③メニューやボタンに付与されるタスク実行権限

52 52 53 54

(9)ハイパータスク実行 ①ハイパータスク実行の動作原理

②ハイパータスク実行の定義方法

③ハイパータスク実行を利用するときの注意点

55 55 56 57

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 5 2011/4/12

(1)開発支援マニュアル ①オンラインヘルプ

1~2ヶ月に一度程度の割合で、バージョンアップ情報、機能追加された技術情報、FAQなどをサーバにアップロードいたしますので、適宜、ご利用ください。

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 6 2011/4/12

②電子マニュアル(PDFファイル)

以下のPDFファイルは、インストール用CD

に同梱していますが、バージョンアップされたファイルは、随時サーバにアップロードします。

1.タスクタイプリファレンスマニュアル

タスクタイプの機能、使い方について

記載しています。

2.テクニカルリファレンスマニュアル

テクニカル情報、内部処理ロジックについて

記載しています。また、開発版、実行版の制限

事項、トラブルシューティングについても記載

しています。

3.開発版リファレンスマニュアル

開発版の操作や、機能に関して記載しています。

4.開発版Excel-SQL活用マニュアル

dbSheetClientで開発する前に、先に知って

おきたいExcel と SQL に関する機能や

テクニックについて説明しています。

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 7 2011/4/12

(2) dbSheetClientの開発手法 ①dbSheetClient の構成と動作環境

サーバ WindowsServer2003、2008

dbSheetClient/サーバ版

.NetFrameWork2.0

IIS6.0,7.0

サーバシステムDB

SQLServer 2005

2008、

ORACLE 9,10,11

インターネット

VPN,LAN

EXCEL2000以上

Windows2000/XP以上

dbSheetClient実行版

.NetFrameWork2.0

EXCEL2003以上

WindowsXP以上

dbSheetClient開発版

.NetFrameWork2.0

ユーザDB

SQLServer

ORACLE

DB2

Sybase

Salesforce

ユーザ

開発者

システム管理者

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 8 2011/4/12

② プロジェクトの開発手順

Excelシートの作成

DBの設計・実装

ビジネスロジックの定義

テストデバッグ実行

プロジェクトの公開

開発手順

開発版

Excel

DBマネージャ

プロジェクト グループ ユーザ データベース リソースの登録

Webブラウザ

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 9 2011/4/12

③ サーバー版でのリソースの登録

(1) リソース管理 プロジェクト登録 データベース登録 グループ登録 ユーザ登録

データベース一覧

AAA

BBB

CCC

DDD

EEE

人事グループ

営業グループ

ID プロジェクト名

---------------------------

10 人事システム

11 営業システム

12 ・・・

13 ・・・

14 ・・・

15 ・・・

エイリアス名 DB名

---------------------------

人事DB jinji-db

営業DB eigyo-db

ユーザ参加

グループ参加

エイリアス参加

① グループ、 ② プロジェクト、 ③ ユーザ、 ④ データベース

サーバー版で管理する4つのリソース

【サーバー版システム管理者画面】

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 10 2011/4/12

3.アップロード

定義情報

エクセル シート

2.シート編集

4.ダウンロード

ユーザ

開発者

サーバ

開発版 定義情報

DB

Excel

デバッグ実行

1.定義編集

④ プロジェクトの開発 と ユーザへの公開

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 11 2011/4/12

⑤ プロジェクト定義情報とExcelブックのアップロード

開発版で変更したプロジェクトの定義情報やプロジェクトで利用するExcelブックは、開発版のアップロード機能によって、IISのサービスを止めることなく、サーバにアップロードすることが可能で、アップロードが完了した段階で、ユーザが最新のプロジェクトを利用することができます。

【参照】 開発版リファレンスマニュアル:P186~197

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 12 2011/4/12

⑥ タスクタイプの種類

201 SQL 322 ファイルアップロード 301 起動モード203 データ照会画面 323 ファイルダウンロード 321 ログ情報書込204 検索付データ照会画面 324 ファイル属性取得 325 メール送信205 検索付データ照会画面Ⅱ 340 ファイル選択ダイアログ 330 画像PDF表示223 トランザクション 341 サーバフォルダ削除 501 外部アプリ起動224 SQL一括照会 342 ファイル操作 502 クリップボード操作230 集計表自動作成 503 マクロ起動

504 外部DLL呼び出し601 データ保守実行

302 メニュー制御 202 入力画面 414 行列指定303 終了処理 319 スクリーン制御 415 行表示304 ハイパー実行制御 401 直接展開 416 列表示310 メインボタン表示 402 ピボットテーブル 417 自動計算311 サブボタン表示 403 シート切替 418 並べ替え315 ループ処理 404 保存 419 ジャンプ317 条件判定分岐 405 一括入出力 420 セル位置取得318 メッセージ表示 406 印刷 421 範囲取得320 サブタスク実行 407 ブック制御 422 図の挿入

408 位置合わせ印刷 423 図のクリア409 シートコピー 424 行列挿入410 コピー 425 チェックボックス設定411 クリア 426 ハイパータスク実行設定412 セル保護 427 イメージ保存413 シート保護 429 イメージクリア

430 EXCELコマンド

701 タイマー処理

イベント処理

DBアクセス ファイル操作 その他の機能

処理制御 EXCEL制御

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 13 2011/4/12

(3) dbSheetClientの各種定義シート ① プロジェクト定義編集の概要

②ボタン定義

③タスク定義

⑤展開定義

④クエリー定義

ブックファイル定義

データベース定義

ボタンエリア

Excelエリア

メニューエリア

タスク1

データ読込

タスク2印刷

SQL文 Select・・・・・

読込

印刷 保存

①メニュー定義

一覧表示

分析・・

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 14 2011/4/12

② 14種類の定義シート と プロジェクト実行時の連携イメージ

【参照】 開発版リファレンスマニュアル:P33

実行時の処理の制御を示しています。

プロジェクト開始時に定義するシートです。

名称管理用一覧シートで自動作成されます。

開発時に頻繁に編集する定義シートです。

① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ ⑪ ⑫

① ② ③

⑥ ⑦

⑧ ⑨

⑪ ⑫

⑭※内部管理用

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 15 2011/4/12

③ 定義シート間の連携から見たプロジェクトの構造図

ユーザDB dbSC

システムDB

⑩開始終了定義

①メニュー定義

⑪ボタン一覧定義

⑦DB運用定義 ⑨ブック運用定義

②ボタン定義

⑫タスク一覧定義

③タスク定義

⑬展開一覧定義

⑤展開定義

⑥DB定義 ⑧ブック定義

④クエリー定義

①タスク実行環境の定義(リソース定義)

②タスク起動源の定義

(イベント処理定義)

③タスクの詳細定義

サーバ

クライアント(プロジェクトの定義)

サーバ内のリソース

リソース管理情報

プロジェクト定義情報

Excel 表示部

ボタン表示部 メニュー表

示部

dbSheetClientのプロジェクトの構造図です。定義シートを3つに大きく分類すると ①タスク実行環境の定義(リソース定義) ②タスク起動源の定義(イベント処理定義) ③タスクの詳細定義 となります。

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 16 2011/4/12

④ 各定義シート相互間のリンク

⑩開始終了定義

①メニュー定義 ⑪ボタン一覧定義

②ボタン定義

⑫タスク一覧定義

③タスク定義

④クエリー定義

⑬展開一覧定義

⑤展開定義

⑥DB定義

⑦DB運用定義

⑧ブック定義

⑨ブック運用定義

DB1

DB2

DB3

ブック1

ブック2

ブック3

開発デバッグBKNO

開発仮本番BKNO

実行本番BKNO

開発デバッグDBNO

開発仮本番DBNO

実行本番DBNO

BKNO

TASKNO

BSNO DNO

QNO

DBNO TASKJUMP01-10

エラー処理TASKNO

キャンセルTASKNO

後処理TASKNO

キー 名称 定義シート

BKNO ブックNO ブック定義、ブック運用定義

DBNO データベースNO DB定義、DB運用定義

BSNO ボタンセットNO ボタン定義、ボタン一覧

TASKNO タスクNO タスク定義、タスク一覧

QNO クエリーNO クエリー定義

DNO データ展開NO 展開定義、展開一覧

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 17 2011/4/12

⑤ メニュー定義 → ボタン定義 → タスク定義のリンク

①メニュー定義

②ボタン定義

③タスク定義

メニュー定義に設定されたボタンセットNO(BSNO)を表示する

ボタン定義に設定されたタスクNO

(TASKNO)を実行する

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 18 2011/4/12

「一覧表示」のタブをクリックしたのち「ボタン一覧」をクリックする

⑥ メニュー定義 → ボタン一覧定義 → ボタン定義 のリンク ①メニュー定義

②ボタン定義

⑪ボタン一覧 定義

「ボタン一覧」をクリックする

ボタン一覧定義には、プロジェクトで使用するボタンセットが一元管理されています。

ボタンセットは「ボタン追加」を実行した時点で自動的に登録されます。

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 19 2011/4/12

③タスク定義

④クエリー定義

チェックを入れるとタスク配下のクエリー定義と展開定義が表示される

⑤展開定義

タスク定義に設定されたQNO(クエリーNO)からクエリー定義のSQL文を実行する

タスク定義に設定されたDNO(データ展開NO)から展開定義に応じて、EXCEL

シートにアクセスする

⑦ タスク定義 → クエリー定義 → 展開定義 のリンク

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 20 2011/4/12

⑧ タスク一覧定義 → タスク定義 のリンク

③タスク定義

「一覧表示」のタブをクリックしたのち「タスク一覧」をクリックする

⑫タスク一覧 定義

「タスク一覧」をクリックする

タスク一覧定義には、プロジェクトで使用するタスクセットが一元管理されています。

タスクセットは「タスク追加」を実行した時点で自動的に登録されます。

※なお、自動で追加すると、タスクNOが自動でナンバリングされるため、管理をしやすくするために、 「タスク一覧」の画面から、直接、指定した番号で追加することも可能です。

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 21 2011/4/12

⑨ タスク一覧定義 → 開始終了定義 のリンク

⑩開始終了定義

「一覧表示」のタブをクリックしたのち「タスク一覧」をクリックする

⑫タスク一覧 定義

「タスク一覧」をクリックする

「開始終了」をクリックする

「一覧表示」のタブをクリックしたのち「開始終了」をクリックする

開始終了定義には、

1.プロジェクトの起動時 2.プロジェクトの終了時 3.ブックを開くとき 4.ブックを閉じるとき 5.メニューがクリックされたとき 6.ボタンがクリックされたとき

に必ず実行させたいタスクを指定することができます。

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 22 2011/4/12

⑩ 展開一覧定義 → 展開定義 のリンク

「一覧表示」のタブをクリックしたのち「展開一覧」をクリックする

⑬展開一覧 定義

「展開一覧」をクリックする

展開一覧定義には、プロジェクトで使用する展開定義が一元管理されています。

展開一覧は「展開定義の追加」を実行した時点で自動的に登録されます。

※なお、自動で追加すると、DNOが自動でナンバリングされるため、管理をしやすくするために、「展開一覧」の画面から、直接、指定した番号で追加することも可能です。

⑤展開定義

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 23 2011/4/12

⑪ ボタンセットNO、タスクNO、展開NOの番号手動指定 【参照】 開発版リファレンスマニュアル:P114

HELP の

「8.初期値入力画面表示」にチェックを入れておくと、BSNO、TASKNO、DNOなどのキーの

番号を手動で入力できる画面が表示されます。

TASKNOやタスク名を変更することができます。

TASKNOの番号などは、後からタスクが追加されたときのために、あらかじめ間隔をあけて番号を決めておくとメンテナンスや管理がしやすくなります。

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 24 2011/4/12

⑫ DB定義 → DB運用定義 のリンク

「一覧表示」のタブをクリックしたのち「DB」をクリックする

⑥DB定義

「DB」をクリックする

DB定義には、プロジェクトで使用するデータベースの定義が一元管理されています。

⑦DB運用定義

DB運用定義は、開発時には、ローカルのDB(DBNO=1)でテストを行い、本番実行時には、サーバにある本番稼動用のDB(DBNO=4)に接続するといった切り替えを、あらかじめ定義しておくために用意された定義シートです。

「DB運用」をクリックする

「一覧表示」のタブをクリックしたのち「DB運用」をクリックする

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 25 2011/4/12

⑬ ブック定義 → ブック運用定義 のリンク

「一覧表示」のタブをクリックしたのち「ブック」をクリックする

⑧ブック定義

「DB」をクリックする

ブック定義には、プロジェクトで使用するEXCELブックの定義が一元管理されています。

⑨ブック運用 定義

ブック運用定義は、開発時には、ローカルのPCにあるブック(BKNO=1)でテストを行い、本番実行時には、サーバにある本番稼動用のブック(BKNO=4)を開くといった切り替えを、あらかじめ定義しておくために用意された定義シートです。

「一覧表示」のタブをクリックしたのち「ブック運用」をクリックする

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 26 2011/4/12

(4) dbSheetClientエンジンの処理フロー ① プロジェクト選択後の開始処理

ログイン画面

実行画面

実行画面を表示する

【参照】 開発版テクニカルリファレンス:P16

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 27 2011/4/12

【参考】開始終了定義について (開発版リファレンスマニュアル:P188)

プロジェクトを実行する時などの開始処理や終了処理として実行するタスクを定義します。

・Excelブックを開いた直後の開始処理、閉じた直後の終了処理として実行するタスクを定義します。

・メニュー領域やボタン領域をクリックした時に、開始処理として実行するタスクを定義します。

・開始終了定義で使用したいタスクを、先にタスク定義に定義しておく必要があります。

開始終了定義で定義できるオープンクローズ処理

1.プロジェクトオープン

2.プロジェクトクローズ

3.ブックオープン

4.ブッククローズ

5.メニュークリック時

6.ボタンクリック時

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 28 2011/4/12

② メニューをクリックしたときの処理

メニュー定義

メニュー表示部

※1 ※2 ※3 ※4 ※5

※5

※1

※2

※3

※4

【参考】 開発版リファレンスマニュアル:P161

開発版テクニカルリファレンス:P17

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 29 2011/4/12

③ ボタンをクリックしたときの処理

ボタン定義

ボタン表示部

※1

※1

【参考】 開発版リファレンスマニュアル:P165

開発版テクニカルリファレンス:P18

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 30 2011/4/12

④ タスク内の処理

※1

※1

※2

※2

※3

※3 ※4

※4

※5

※5

【参考】 開発版リファレンスマニュアル:P168

開発版テクニカルリファレンス:P19

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 31 2011/4/12

⑤ データベースからの データ照会処理 クエリー定義シートを

読込む

06:クエリー定義

QNO

SQL文を読込む

パラメータが設定時には「dbS_パラメータ」シートから

パラメータ値を読込みSQL文にセットする

>= 1

データベースの接続情報を取得する

01:データベース定義

SQL文を送信しデータの取得要求をする

データベース

展開定義を読込 07:展開定義

以下のタスクタイプが該当201:SQL(照会、SQL更新)203:データ照会画面204:検索付データ照会画面205:検索付データ照会画面Ⅱ230:集計表自動作成

展開先のExcelのセルを求める

Excelシートにデータを展開する

データ照会画面を表示するか?

タスクタイプ201:SQL (照会、SQL更新)230:集計表自動作成

取得したデータを画面を表示する

Yes

採用?Yes

サーバ側の処理

キャンセル処理へ

No

タスクタイプ203:データ照会画面204:検索付データ照会画面205:検索付データ照会画面Ⅱ

Excelシート

Excelシート

= 0

終了

※1.Excelに保護がかかっているときには、データ展開時にエラーになることがあるため、事前に保護の解除をします。

01:DB運用定義

エラーが発生したか?

SQL文を実行する正常時、データを送信する

エラー時、エラー情報を送信する

キャンセル

エラーメッセージを表示する

Yes

継続

中断

継続/中断/エラータスク実行エラータスク実行

No

【参照】 開発版リファレンスマニュアル:P177~187

開発版テクニカルリファレンス:P21

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 32 2011/4/12

⑥ データベースに対する データ更新処理

【参照】 開発版リファレンスマニュアル:P177~187

開発版テクニカルリファレンス:P22

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 33 2011/4/12

(5) 各種処理フローの定義方法

① 直線型 フロー

処理A

処理B

処理C

dbSheetClient

の設定

●手法1● 複数のタスクを処理順に列挙した「タスクセット」をタスク一覧定義に登録する。(タスク追加時に自動登録される) タスクセット内では、処理順Noに処理の順番を指定する。 メニューやボタンからタスクを起動する場合には、指定したタスクセットの番号を指定する。

●手法2●

タスクタイプ: 320.サブタスク実行 を利用する。

(タスクA)

(タスクB)

(タスクC)

タスクセット

手法1:タスクセット 手法2:タスクタイプ「320.サブタスク実行」

4

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 34 2011/4/12

【設定例】

① 最大10個 のサブタスクを指定して実行することができます。

② 指定された番号に従って、サブタスクを順次実行します。

③ 何度も同じ処理が繰り返される時には、サブルーチンのように別のタスクとして定義しておき、

サブタスクとして実行させることでタスク定義の定義行数を削減することができます。

【機能】 タスクタイプ:320.サブタスク実行 【参考】 タスクタイプリファレンス:P313

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 35 2011/4/12

② 分岐型(CASE型) フロー

判断

処理A

処理B

処理C

年齢?

20代

30代

40代

Excelシート内に判定式を設定する

判定式

20代……1

30代……2

40代……3

項目 設定内容 判定

開始判定セル 「@判定式」

TASKJUMP01 処理AのタスクNO 1

TASKJUMP02 処理BのタスクNO 2

TASKJUMP03 処理CのタスクNO 3

タスクタイプ:317 条件判定分岐

判定結果の”1”と「TASKJUMP01」が対応

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 36 2011/4/12

【設定例】

① 「開始判定セル」の値を1~10に変化させることで、値に対応したTASKJUMP1~10のタスクを

実行します。 タスク実行後は、次の処理へ移行します。

② 「開始判定セル」の値が 0 の場合は、そのまま次の処理へ移行します。

【機能】 タスクタイプ:317.条件判定分岐 【参考】 タスクタイプリファレンス:P297

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 37 2011/4/12

③ ループ型 フロー

処理B

処理A

処理B

i++

ループ

For i=1 to 10

ループ End

処理A

ループ

i =< 10

ループ End

処理B

処理A

ループ

ループEnd

i =< 10

タスクタイプ:315 ループ処理

回数指定ループ

For ~Next

前判定ループ

Do While ~Loop

後判定ループ

Do ~Loop While

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 38 2011/4/12

【設定例】

【機能】 タスクタイプ:315.ループ処理 【参考】 タスクタイプリファレンス:P287

① ループ処理の開始位置を示します。

② タスクの中で、タスクタイプ属性「ループ終了位置」と組み合わせ、ループ開始位置 と

ループ終了位置のタスクタイプに挟まれているタスクを繰返し実行します。

③ ループ処理の形態は、汎用パラメータ1(ループ処理形態)で指定し、「回数指定」、「前判定ループ」、

「後判定ループ」の3とおりです。

④ ループ処理から強制的に抜け出す条件を 2種類 指定することができます。

⑤ 汎用パラメータ7~9(EXIT判定1関連)、汎用パラメータ10~12(EXIT判定2関連)のどちらかが

真の時、ループ処理を終了します。

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 39 2011/4/12

(6) データ照会の定義方法 【参考】 タスクタイプリファレンス:P61,81,125~158

dbSheetClient では、サーバのデータを照会して、Excelシート上に取り込むための機能として、以下のタスクタイプを用意しています。

No タスクタイプ タスクタイプ属性 機能

201 SQL 照会 クエリー定義のSQL文(SELECTのみ対応)を実行し、サーバからデ

ータを取得後、展開定義で指定されたセル位置にデータを展開します。

SQL SQL更新 SELECT文だけでは記述できない複雑なSQL文の実行や、ストアドプロシジャの実行をおこない、データを取得することができます。

203 データ照会画面 クエリー定義のSQL文を実行し、取得したデータをdbSheetClient独

自のデータ照会画面(ダイアログ)に表示し、その中から、選択されたデータを 1レコードだけ Excelシートに展開します。

204 検索付

データ照会画面

クエリー定義で定義されたSQL文を実行し、取得したデータを検索付データ照会画面(ダイアログ)に表示します。

表示されたデータから絞り込み検索を行うことができ、複数の選択レコードをExcelシートに展開します。

205 検索付

データ照会画面Ⅱ

204.検索付データ照会画面では絞り込み検索をおこなったときには、その都度、データベースに対して、SQL文を発行して、データベースからデータを再取得しますが、205.では、SQL文の発行は

最初の画面表示の時だけおこない、画面に表示されたデータの中から、絞り込み検索をおこないます。

① データ照会のための各種タスクタイプ

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 40 2011/4/12

タスク定義シート設定項目 定義内容

タスクタイプNO SQL

タスクタイプ属性 照会

ブック名 Sampleタスクタイプ.xlsシート名 SQLQNO 1

DNO 1

クエリー定義シート設定項目 定義内容

QNO 1クエリータイプ 照会

エイリアス名 SampleDB

テーブル名 商品マスタ

SQL文 SELECT * FROM 商品マスタ

展開定義シート設定項目 定義内容

DNO 1定義区分 クエリー定義タイプ 照会タスク・展開属性 全選択データ一括シート名 SQLセル範囲 @照会_商品コードセル展開範囲定義名 @照会_取得域

SampleDB

商品マスタ

得意先マスタ

【データベース】

SQL文の実行でデータを取得する

② 201.SQL 照会 : 全選択データ一括展開方式の例 【参考】 開発テクニカルリファレンス:P23

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 41 2011/4/12

③ 203.データ照会画面の例

個人マスタ データベース内の「個人マスタ」テーブルを読込み、データ展開画面に表示し、選択された1件のデータがExcelシートに展開します。

【参考】 タスクタイプリファレンス:P125~134

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 42 2011/4/12

④ 204.検索付データ照会画面の例

商品マスタ データベース内の「商品マスタ」テーブルを読込み、検索付データ展開画面に表示し、選択された複数件のデータがExcelシートに展開します。

【参考】 タスクタイプリファレンス:P135~146

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 43 2011/4/12

⑤ パラメータを利用したデータ照会 【参考】 開発版リファレンスマニュアル:P18~21

A B C D E F G1 SNO 変数名 設定値 書式 備考 行数 402 20 ←ここまで、システムで使用する。3 21 ^社員コード^ 7 社員コード

実行時は、 「SELECT 社員名 FROM 社員マスタ Where 社員コード = 7」 に変換され、実行します。

▼クエリー定義のSQL文の例

▼dbS_パラメータシート例

dbS_パラメータシートは、dbSheetClientで予約された(自動作成される)シートで、プロジェクトに対して1つ作成されます。

dbS_パラメータシートに設定した情報については、下記の例ように、「変数名(パラメータ名)」をSQL文に記載することによって、実行時にExcelシート上の「設定値」の値と置き換えて、SQL文を生成しなおして、実行します。

この機能によって、Excelシート上に入力した社員コードに該当するレコードを社員マスタから取得することができるようになります。

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 44 2011/4/12

【参考】 タスクタイプリファレンス:P67~84 テクニカルリファレンス:P28~29

dbSheetClient では、 Excelシート上で入力・変更されたデータで、サーバのデータを更新するための機能として、以下のタスクタイプを用意しています。

No タスクタイプ タスクタイプ属性 機能

201 SQL 更新 SQL文として「UPDATE」の指定だけで、dbSheetClientが更新用SQL文を自動生成して、Excel上のデータをサーバに送信してデータ更新をおこないます。(テーブルの全フィールドがExcel上に展開されている必要がある)

SQL 指定更新 更新の改良機能で、主キーとDBS同時実行制御フィールドおよび

、変更したいフィールドのデータのみをサーバに送信してデータ更新をおこないます。

SQL SQL更新 SELECT文だけでは定義できない複雑なSQL文の実行や、独自のデータ更新処理、ストアドプロシジャの実行をおこないます。

SQL 削除 SQL文として「UPDATE」の指定だけで、dbSheetClientが削除用SQL文を自動生成して、Excel上のデータをサーバに送信してレコードの更新をおこないます。(テーブルの全フィールドがExcel上に展開されている必要がある)

① データ更新のためのタスクタイプ

(7) データ更新の定義方法と排他制御

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 45 2011/4/12

A氏の操作 B氏の操作

得意先Xのデータ取得

得意先Xのデータ読込時エラー

編集作業

得意先マスタ

得意先Xのデータ更新

ロック解除待ち

得意先Xのデータ取得

得意先Xのデータ更新

ロック解除

編集作業更新内容が保証される

A氏の操作 B氏の操作

得意先Xのデータ取得

編集作業

得意先マスタ

得意先Xのデータ更新

得意先Xのデータ取得

得意先Xのデータ更新

編集作業

更新エラー

先に更新

更新内容が保証される

③ 楽観的同時実行制御(楽観的ロック方式)

② 悲観的同時実行制御(悲観的ロック方式) データを取得したときから更新が完了するまでロックをかけます。したがって、データの編集から更新完了まで、他のユーザはデータへのアクセスが制限されます。(ロックによる排他制御)

【利点】 データ取得後は、データ更新を確実におこなうことができます

【問題点】 長時間のロック解除待ち状態が続いたり、デットロック状態になることがあります。

データを取得したのちはロックをかけず、データ更新時にデータが誰からも変更されていないかをチェックして、変更されていない時だけデータを更新します。

【利点】

1)更新完了時の更新データについては保証されます。

2)長時間のロック解除待ち状態が少なくなり、デットロック状態になることを避けることができます。

【問題点】 データを取得して編集をおこなっている間でも、他のユーザが同じデータを取得して先にデータを更新することができるため、自分より先に他の誰かが更新を行ったときには、更新処理をおこなうことができなくなり、データの再取得と再入力が必要になります。

【参考】 テクニカルリファレンス:P32~51

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 46 2011/4/12

④ 「DBS同時実行制御フィールド」を利用したデータ更新処理

dbSheetClient では、5つの「DBS同時実行制御フィールド」の情報に基づいて ① 悲観的同時実行制御 と ② 楽観的同時実行制御 を実現しています。

dbSheetClient では、データ更新をおこなうときに、他の誰かが先にデータを更新していないかをチェックするために、 データ更新の直前に、データベースの「DBS同時実行制御フィールド」と、Excelシート上の更新データに含まれる 「DBS同時実行制御フィールド」のデータの内容を比較しています。

もし、 両者のフィールド(特にDBS_UPDATE_USER と DBS_UPDATE_DATE) の値に相違がある場合には、 他の誰かが自分より先にデータを更新していると判断して、dbSheetClient では更新処理をキャンセルします。

DB データ取得 データ編集 データ更新

Excel シート Excel シート Excel シート

DB

データベースからデータ

を取得して、 Excel シート

上にデータを展開する

Excel シート上で

データを編集する

Excel シート上 で 編集した

データを送信してデータ

ベースを更新する

(a) データ取得用

INシート

(b) データ編集用

EDITシート

(c) データ更新用

OUTシート

※ 1. DBS 同時実行制御

フィールドを取得しておく

※ 2. 取得時の DBS 同時実行制御

フィールドをセットして DB を更新

タスクタイプ

201 : SQL 203 :データ照会 204 :検索付 〃

タスクタイプ

206 :更新 208 :削除

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 47 2011/4/12

⑤ IOTG:自動プログラミング機能 (INシート、EDITシート、OUTシートを利用した更新処理)

dbSheetClient の自動プログラミング機能である IOTG を利用すると、自動的に、INシート、EDITシート、OUTシートを利用した更新処理が実現できます。

12345678

12345678

12345678

1 2

3 4

5678

データ取得用

INシート 更新用

OUTシート

編集用

EDITシート

IN(取得)シート、EDIT(編集)シート、OUT(更新)シートを作成する際の注意事項

① IN(取得)シートはテーブルからデータを読込んで更新前のデータとして保持するためのシートになります。

したがって、テーブルのレイアウトと一致するようなシートにするのが基本です。

② EDIT(編集)シートは編集用のシートです。ユーザーがデータを入力したり変更するためのシートです。業務に合わせたレイアウトに設計し テーブル形式に合わせる必要はありません。

③ OUT(更新)シートはEDIT(編集)シートに入力されたり変更されたデータを、DBのテーブルに反映させるための更新用シートになります。

したがって、テーブルのレイアウトと一致するようなシートにするのが基本です。

【参考】 テクニカルリファレンス:P61~101

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 48 2011/4/12

IN(取得)シートの必要性について

① 変更前のデータという形で、読込んだデータを保管しておく役割を持っています。 ② テーブルから取り込んだ情報が変更されたかを比較する時に変更前データとしてこのシートを参照します。 ③ テーブルの更新ごとにサーバから変更前のデータを読込むようにすると、処理時間(レスポンス)がかかり 非効率になります。

展開

IN(取得)シート EDIT(編集)シート

A B C D E F

展開

OUT(更新)シート EDIT(編集)シート

A B C D A

B C

OUT(更新)シートの必要性について

① EDIT(編集)シートと、DBのテーブルとのレイアウトが異なる場合にテーブルへの更新処理を行うためには、 テーブルと同じレイアウトのOUT(更新)シートが必要になります。 下記のパターンはEDIT(編集)シートとテーブルのレイアウトが違っているため、一旦テーブルと同じレイアウトの OUT(更新)シートにデータを展開して、そのシートを基にしてテーブルを更新します。 ② デバッグ時に、テーブル更新用データの元データとして確認することができます。

DB

テーブル

DB

テーブル

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 49 2011/4/12

⑥ データ更新の種類 【参考】 テクニカルリファレンス:P29,44~46

データベースの更新は、項目単位による分類とレコード単位による分類及び、排他制御による分類がありその組み合わせによって更新方式が決定します。

→項目

による分類 更新 指定更新

排他制御

レコードの分類 ロックなし 楽観ロック 悲観ロック ロックなし 楽観ロック 悲観ロック

全データ更新 ○ ○ ○ ○ ○ ○

修正データのみ ○ ○ ○ ― ○ ○

1) 項目による分類は、タスク定義(タスクタイプ「201:SQL」)の「タスクタイプ属性」にて指定します。

更新 :全項目を更新する場合に指定します。

指定更新:指定した項目のみ(指定する項目にプライマリキーに該当する項目と、「DBS同時実行制御フィールド」を

含みます)を更新する場合に指定します。

2) 排他制御は、クエリー定義の「排他制御タイプ」にて指定します。

ロックなし:他者と競合することのないテーブルを更新する場合に指定します。

楽観ロック:(標準)データの参照時はデータのロックを行わないで、更新時にロックをかけます。

ただし、他者が先に更新した場合は今回更新しません。その場合に指定します。

悲観ロック:データ参照時にロック(の状態に)します。更新時にロック中のデータを更新し、全ロックを解除します。

その場合に指定します。

3) レコードの類は、クエリー定義の「更新処理形態」にて指定します。

全データ更新 :シート内のデータを一括して、追加・更新、または削除を行う場合に指定します。

修正データのみ:新規のレコード、変更したレコード、削除指定したレコードのみを更新処理する場合に指定します。

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 50 2011/4/12

⑦ データ更新時の注意事項 【参考】 テクニカルリファレンス:P47~51 オンラインヘルプ(7)よくあるご質問(QA集)

1) Null値を取り扱うときの注意事項

2) 更新処理時のデータ型とセル書式設定の注意事項

DB側のNull値のデータをExcelシートに展開すると、空文字“” になって、Excelシート上では空白状態になります。 その結果、Excelシート上にNull値が空文字“”として展開された後では、DB側のデータが、空文字だったのかNull値だったのかを、Excelシート上だけでは、判断することができなくなります。 そのため、dbSheetClient では以下の仕様で、Null値 のデータの取得やNull値での更新をおこなうことができるようにしています。 → 以下、テクニカルリファレンスを参照のこと

DB側では文字型、数値型、日付型、時間型などのデータタイプが設定でき、DB側のデータタイプに応じて、データのREAD/WRITEがおこなわれますが、Exce側では、セルに設定した書式をもとにデータタイプが判断されます。しかしながら、セルの書式を設定しないで、標準のままにしているときや、=数式 で他のセルを参照しているときなどには、以下のようにデータタイプが自動的に判定されて、データタイプが変化するので注意が必要です。

①単一セルの場合:

入力されているデータが数字の場合には数字、文字の場合には文字として判定される。

②複数行にわたる連続したセル(列方向)の場合:

入力されているデータの過半数が数字の場合には数字、過半数が文字の場合には文字と判定される

③=数式で参照したときに標準設定のセルに表示される参照値:

1)参照した値が数字の場合:数字 2)参照した値が文字列書式のセルに入力されている数字:文字型の数字 3)参照した値が文字:文字 4)参照した値が日付:数値(1900/1/1からの日数)

このようなExcelが自動的に処理するデータタイプの判定から、データ更新時に、DB側のデータとExcelシート上のデータのデータタイプのミスマッチによる更新エラーが発生することがあります。 → 以下、テクニカルリファレンスを参照のこと

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 51 2011/4/12

3) 更新処理時の処理スピードについて

データ件数(レコード件数)×フィールド数<100(※1) の時には、更新処理時間に違いは出ませんが、データ件数が100件、1000件と件数が増えると、Excel側で設定したデータの配列方式やデータタイプの設定によって、処理スピードに大きな違いが出てきます。 (※1. データ件数10件、フィールド数9個のときは 90 データ件数5件、フィールド数30個 のときは 150 と計算します)

1000件ほどのデータ更新をおこなったときに、2) と 3) については、一般的な環境では、それぞれ数秒程度で終わりますが、1) の処理については、Excel側の更新データの設定方法の違いによって、数秒で終わるケースと、数分以上かかるケースがあります。

dbSheetClientでは、1)の時間をなるべく短縮するために、高速データ転送処理(高速処理)を利用していますが、そのためには、Excel側で更新データを以下のように設定しておく必要があります。設定を間違ったり、条件に合わない場合には、通常データ転送処理(低速処理)で処理をおこなうため、10倍以上の時間を要しますので、十分注意してください。 (※ただし、データ件数(レコード件数)×フィールド数<100 のときには、高速処理の方が遅くなるケースがあるため、低速処理を実行しています。)

→ 以下、テクニカルリファレンスを参照のこと

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 52 2011/4/12

① ユーザに付与される権限

(8) 権限管理

権限名 権限内容 実行版 開発版 リソース

管理

特別な権限 ライセンス登録 プロジェクト削除

操作ログ保存

実行ユーザ権限 利用ユーザに与える権限 ○

開発ユーザ権限 開発ユーザに与える権限 ○ ○

システム管理者権限

システム管理者に与える権限 ○

スーパーバイザー権限

特権 ○ ○

実行ユーザ権限 開発ユーザ権限

システム管理者権限

スーパーバイザー権限

① 一般利用ユーザ ② 開発ユーザ ④ スーパーバイザー

実行/開発ユーザ権限

③ システム管理者

低い 権限 高い

【参考】 サーバ版操作マニュアル:P7~

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 53 2011/4/12

② グループに付与されるプロジェクト実行権限

ログイン: aaa

プロジェクト実行権限 ・・・・グループ毎に、実行できるプロジェクトの設定が可能。

プロジェクト一覧

---------------------------

10 人事システム

プロジェクト一覧

---------------------------

10 人事システム

11 営業システム

ログイン: bbb

人事グループ

人事グループ

営業グループ

①ユーザ「aaa」は、 グループ「人事」に参加している ②グループ「人事」は、 プロジェクト「人事システム」に 参加している ↓ ③「人事システム」プロジェクトに アクセスが可能

①ユーザ「bbb」は、 グループ「人事」と「営業」に 参加している ②グループ「人事」は、 プロジェクト「人事システム」に 参加している ③グループ「営業」は、 プロジェクト「営業システム」に 参加している ↓ ④「人事システム」、 「営業システム」プロジェクトに アクセスが可能 【参考】

開発版リファレンスマニュアル:P128(メニュー定義:権限レベルの設定) 開発版リファレンスマニュアル:P130(ボタン定義:権限レベルの設定)

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 54 2011/4/12

ログイン: aaa

ログイン: bbb

社員グループ

社員グループ

経理グループ

メニュー設定で

「経理グループ」にのみ権限設定がされている。

ボタン定義で

「経理グループ」にのみ権限設定がされている。

タスク実行権限・・・・グループ毎に、「メニュー」、「ボタン」の実行権限設定が可能。

【参考】 開発版リファレンスマニュアル:P128(メニュー定義:権限レベルの設定) 開発版リファレンスマニュアル:P130(ボタン定義:権限レベルの設定)

③ メニューやボタンに付与されるタスク実行権限

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 55 2011/4/12

(9) ハイパータスク実行 【参照】 開発版テクニカルリファレンス:P56

dbSheetClientでは、実行画面の左側のメニューや上部のボタンをクリックしたときにタスクを実行することができますが、ハイパータスク実行の設定をおこなうと、あたかも、マクロを利用してExcelシート上に配置したマクロ用のボタンから処理を実行させると同様に、Excelシート上に配置した文字や図(オートシェイプや画像)からタスクを直接実行することができるようになります。

① ハイパータスク実行の動作原理 ハイパータスク実行は、Excelのハイパーリンクのイベントおよびセレクションチェンジイベント(選択されているセルが別のセルに変更したときのイベント)をdbSが取得し、イベントをキャッチしたのち、選択されているセルの文字列を取得して、ボタン名かタスクNOかを判断して、該当するタスクを実行しています。

したがって、ハイパータスク実行を設定するには、

1)セルまたは図にハイパーリンクを設定し、 2)のセルにリンクさせる 2)セルに実行したいタスクの「ボタン名」か 「タスクNO」を入力する

の2段階の設定が必要になります。

また、ハイパータスク実行の設定の方法としては、 右図のように

※1.セル→ボタン名 によるハイパータスク実行 ※2.図→DBS!ボタン名 によるハイパータスク実行 ※3.図→DBS#タスクNO によるハイパータスク実行

の3通りの方法があります。

【SQL取得】

DBS!SQL取得

データ取込DBS#10

タスクNO=10

SQL取得

※2.図→DBS!ボタン名

によるハイパータスク実行

※3.図→DBS#タスクNO

によるハイパータスク実行

※1.セル→ボタン名によるハイパータスク実行

図(オートシェイプ)で描画したボタンにハイパーリンクを設定

ハイパーリンクから参照されるセルにDBS#{タスクNO}

を入力

ハイパーリンクから参照されるセルにDBS!{ボタン名}を

入力

セルにボタン名を入力してハイパーリンクを設定

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 56

② ハイパータスク実行の定義方法

2011/4/12

下図では、ハイパータスク実行の実際の設定方法として、以下の2つの例を示しています。

1)セルに入力した文字からハイパータスク実行によるタスク実行 2)図(オートシェイプ)で描画したボタンからハイパータスク実行によるタスク実行

ボタンエリアに表示されているボタン

1)セルに入力した文字からハイパータスク実行によるタスク実行

2)図(オートシェイプ)で描画したボタンからハイパータスク実行によるタスク実行

ハイパータスク実行でタスクを実行させるために、以下のように設定します。

「1)セルに入力した文字からハイパータスク実行によるタスク実行」 の設定方法

1.適当なセルに、実行したいタスクが設定されている「ボタンエリアのボタン名」と同じ文字を入力する。

上図の例では、「SQL取得」と「クリア」を入力しています。

2.セルを右クリックして、「ハイパーリンク」を選択し、以下のように、ハイパーリンクを設定します。

リンク先 → 「このドキュメント内」

セル参照 → 「SQL取得」や「クリア」入力したセルを指定

(※名前を定義して定義名で指定してもよい)

以上の設定で、ハイパーリンクを設定したセルをクリックすると、ボタンに定義されているタスクが実行します。

【注意】ボタン名と異なった文字の場合にはタスクは起動しません。半角・全角の違いに注意して文字を入力してください。

2011/4/122009/08/26

Copyright Newcom Co.,Ltd. 57

「2)図(オートシェイプ)で描画したボタンからハイパータスク実行によるタスク実行」 の設定方法

1.適当なセルに、実行したいタスクが設定されている「ボタンエリアのボタン名」を利用してDBS!{ボタン名}と入力する。上図の例ではボタン(図)の下に隠れていますが、セルI11にDBS!SQL取得、J11にDBS!クリアと入力しています。

2.ボタン(図やオートシェイプ)を描画し、ボタンに表示する適当な文字を入力します。上図の例では、「データ取込」と「初期化」を入力しています。文字は、タスクのボタン名と一致させる必要はありません。

3.図(.ボタン)を選択して右クリックして、「ハイパーリンク」を選択し、以下のように、ハイパーリンクを設定します。

リンク先 → 「このドキュメント内」

セル参照 → 「DBS!SQL取得」や「DBS!クリア」と入力したセルを指定

以上の設定で、ハイパーリンクを設定したボタン(図)をクリックすると、ハイパーリンク先のセルにカーソルが移動し、そのセルに入力されているタスクが実行します。

③ ハイパータスク実行を利用するときの注意点 ①参照先のセルが選択されている状態で、図(オートシェイプや画像)で作成したボタンからのハイパータスク実行の時には、選択されるセルが変化しないことからセレクションチェンジイベントが発生しないため、タスクを実行することはできません。 したがって、図(オートシェイプや画像)で作成したボタンからハイパータスク実行した後には、セルの位置を、ジャンプなどのタスクタイプで、ハイパーリンクの参照セルとは違うセルに移動させておくなどの対策が必要です。 ②図(オートシェイプや画像)ではなく、DBS!ボタン名、DBS#タスクNO が入力されているセルをマウスなどで選択したときも、セレクションチェンジイベントが発生するため、タスクが実行します。 マウスで簡単にセルをクリックされることがないように、列や行などを非表示にするなどの対策が必要です。 ③ボタン名によるハイパータスク実行は、ボタンエリアにボタンが表示されているときだけ有効になります。そのため、実行権限がそのまま適用されます。 ボタンエリアにボタンが表示されていないときや、実行権限が無くボタンが無効の時には実行できません。 ④タスクNOによるハイパータスク実行を行う前には、タスクタイプ:304.ハイパータスク実行制御で「有効」にしておく必要があります。「無効」の状態では実行できません。 なお、タスクNOによる実行は、ボタン名のように権限の設定が働かないため、だれでも実行できるので注意が必要です。 ⑤ハイパーリンクの参照セルにロックが掛かっていると、タスクを実行することができません。 シートを保護するときには、必ず、セルのロックをはずした状態にしてください。