判例全文 line
line
【事件名】簡易組替ツール“X−Smart”事件
【年月日】令和2年3月4日
 東京地裁 平成29年(ワ)第19073号 損害賠償請求事件
 (口頭弁論終結日 令和元年12月11日)

判決
 当事者の表示別紙1当事者目録記載のとおり


主文
1 原告の請求を棄却する。
2 訴訟費用は原告の負担とする。

事実及び理由
第1 請求
 被告は、原告に対し、1億8000万円及びこれに対する平成29年6月17日から支払済みまで年5分の割合による金員を支払え。
第2 事案の概要
1 事案の要旨
 本件は、原告が、被告において、原告の創作した別紙2プログラム目録記載のプログラム(以下「本件プログラム」という。)を組み込んだ「X−Smart.」シリーズのソフトウェア(以下、同シリーズのソフトウェアを一括して「X−Smart」という。)をクラウドサーバ上で顧客に提供することにより、本件プログラムを複製し、送信可能化して、原告の本件プログラムについての著作権(複製権、公衆送信権)を侵害するとともに、この侵害行為により作成された複製物を業務上電子計算機において使用することにより、原告の上記著作権を侵害したものとみなされる旨主張して、被告に対し、対象期間を平成26年6月9日から平成29年6月8日までとする不法行為による損害賠償請求権に基づき、損害金1億8000万円(著作権法114条3項による算定)及びこれに対する不法行為後の日である平成29年6月17日(訴状送達の日の翌日)から支払済みまで民法所定年5分の割合による遅延損害金の支払を求める事案である。
2 前提事実(当事者間に争いのない事実並びに後掲各証拠(以下、書証番号は特記しない限り枝番の記載を省略する。)及び弁論の全趣旨により容易に認められる事実)
(1)当事者等
ア 原告は、コンピュータシステム、情報通信機器、画像処理関連機器の周辺機器の調査、企画、開発及び技術支援等を目的とする株式会社である。
イ 被告は、企業から開示された情報の調査、収集及び提供並びにコンサルティング業等を目的とする株式会社であり、平成23年以降、有価証券報告書等の編集から完成までをサポートするソフトウェアである「X−Smart」をクラウドサーバ上で顧客に提供している。
ウ ディスクロージャー・イノベーション株式会社(以下「DI社」という。)は、企業内容開示に関連するソフトウェアの研究、開発、使用許諾、実施許諾、輸出入、販売・賃貸等を業とする株式会社であり、被告の完全子会社である。
(2)本件プログラムの概要
ア 本件プログラム及びX−Smartは、いずれも、金融商品取引法に基づく有価証券報告書等の開示書類の電子開示システム(英文表記である「ElectronicDisclosureforInvestors’NETwork」を略して「EDINET」とも表記されており、以下「EDINET」という。)を利用する際に用いられるプログラムないしソフトウェアである。
イ EDINETを利用する場合には、平成20年4月以降に開始する事業年度から、財務諸表本表のデータを、国際的に標準化されたコンピュータ言語であるXBRL形式で提出することとされ、その際には金融庁が公表するEDINETタクソノミで用意されている開示科目(以下、単に「開示科目」という。)を使用することとされた。そのため、開示書類の提出者は、日常の会計処理に用いられている勘定科目を開示科目に組み替えた開示書類をXBRL形式で作成することが必要になった。
ウ 上記のような背景の下で、被告により、平成23年以降、顧客に対して提供されているX−Smartは、EDINETに提出する開示書類を作成するためのソフトウェアであり、本件プログラムは、X−Smartに組み込んで用いることができる「X−Smart簡易組替ツール」という名称のプログラムであって、@ユーザーが作成した会計に関するエクセルファイル等をX−Smartに取り込む機能(以下「エクセル取込機能」という。)及びA勘定科目を開示科目に簡易に組み替える機能(以下「簡易組替機能」という。)を有するものである(乙50、51、54)。
エ 本件プログラムを作動させた際の操作内容及び画面表示等の概要は、別紙3本件プログラム説明書のとおりである(甲36ないし40)。
(3)本件プログラムの開発経過
ア 原告は、平成23年11月7日、DI社との間で、DI社から原告に対して発注される目的物の取引に関する取引基本契約(甲2、以下「本件取引基本契約」という。)を締結した。本件取引基本契約には、契約の履行に関連して原告が著作物を創作した場合、当該著作物の著作権に関する取扱いはDI社及び原告で協議して決定する旨の条項(19条3項)がある。
 原告は、平成24年8月23日以降、順次、DI社との間で、本件取引基本契約に基づく個別契約を締結し、本件プログラムの設計、実装、結合試験等を受注した(甲2、3、16、17)。
イ 原告は、平成23年11月7日、DI社との間で、原告の雇用する労働者をDI社に派遣することを目的とする労働者派遣基本契約(以下「本件労働者派遣基本契約」という。)を締結し、その後、同契約に基づき、原告の従業員である甲(以下「甲」という。)らをDI社に派遣した。本件労働者派遣基本契約には、業務の過程で原告がなした成果物に関する著作権を含む一切の権利はDI社に帰属する旨の条項(14条1項)がある(乙71)。
ウ 原告は、平成24年8月1日から同年9月5日までの間に、DI社から、本件プログラムの開発に係る資料として、別紙4資料目録記載の各資料(以下、番号に対応させて「本件資料1」などといい、これらを一括して「本件各資料」という。)の交付を受けた(乙61ないし70)。
エ 原告は、平成24年8月24日、株式会社MNU(以下「MNU社」という。)との間で業務委託基本契約(甲4、以下「本件業務委託基本契約」という。)を締結し、同契約に基づき、同日以降、順次、MNU社に対して、DI社から発注を受けた本件プログラムの設計、実装、結合試験等を発注した。本件業務委託基本契約には、納入物件に係るMNU社の著作権は当該納入物件の受領をもって原告に移転する旨の条項(16条1項)がある。
 原告は、MNU社において同日から平成26年3月31日までの間に開発した上記発注に係るプログラムを、順次、DI社に対して、MNU社から納入を受けた上で、又はMNU社から直接に納品した(甲3、4、16、24ないし27)。
オ 原告は、平成26年4月1日から平成28年9月15日までの間に、順次、本件取引基本契約に基づき、DI社から発注を受けたプログラムを開発し、同日、DI社に対して、本件プログラムを納品した(甲14、15、28、29)。
(4)被告の行為
 被告は、平成29年9月5日まで、顧客に対し、クラウドサーバ上で、X−Smartと共に本件プログラムを提供していた(乙51、55、60。ただし、X−Smartには、@「X−Smart.」、A「X−Smart.Basic」及びB「X−Smart.Advance」という名称のものがあり、本件プログラムが上記A及びBのソフトウェアで使用されていたかについては当事者間に争いがある。)。
(5)プログラミングに関する用語等の意味
ア プログラミング言語であるCないしC#におけるサブルーチン、条件分岐、ループ(繰返し)は、次の意味を有する用語であり、高等学校工業科用の文部科学省検定済教科書である「プログラミング技術」(実教出版株式会社、乙232、238。以下、一括して「乙232文献」という。)においても同様に説明されている(乙223ないし226、232、233、238)。
(ア)サブルーチン
 サブルーチンは、メインプログラムの中で何度も繰り返す作業など一つのまとまった作業をメインプログラム外に記述した補助プログラム単位である。
(イ)条件分岐
 条件分岐は、プログラムの制御構造のうち、条件によって複数の処理に分けるものであり、if文、switch文は、いずれも条件分岐に用いられる構文である。
(ウ)ループ
 ループは、プログラムの制御構造のうち、データ処理をする際に同じ処理を何度も繰り返すものであり、for文、while文は、いずれもループに用いられる構文である。
イ プログラミング言語であるC#において、foreach文は、for文等と共にループに用いられる構文である(乙223ないし226、232、233)。
ウ デバッグは、バグの原因やそのプログラム上の位置を特定し、動作を修正する作業であり、デバッグログは、その作業に用いられる記録である。
3 争点
(1)本件プログラムは著作物といえるか(争点1)
(2)原告は本件プログラムの著作権を有するか(争点2)
(3)著作権侵害の成否(争点3)
(4)被告に著作権侵害について故意又は過失が認められるか(争点4)
(5)損害の発生の有無及びその額(争点5)
第3 争点に対する当事者の主張
1 争点1(本件プログラムは著作物といえるか)について
【原告の主張】
 本件プログラムは、プログラムの著作物(著作権法10条1項9号)に当たる。その理由は以下のとおりである。
(1)本件プログラムの開発状況は、別紙5開発状況一覧表の「原告の主張」欄のとおりであるところ、本件プログラムは、同別紙「原告創作」欄に「○」が付されている原告の創作に係る部分に限っても、合計4万0381ステップという膨大な量のソースコードから成り、指令の組み合わせ方、その順序、関数化の方法等には無限に近い選択肢がある。
(2)本件プログラムにおけるエクセル取込機能及び簡易組替機能は、一般的な用途に使用されるものではないから、これらの機能を実現するためのプログラムがありふれたものであるとはいえない。
(3)原告は、「NetAdvantageforASP.NET」(以下「NetAdvantage」という。)や「MicrosoftVisualStudio2010」(以下「VisualStudio」という。)等の開発ツールを用いながらも、ライブラリ群の中からどのライブラリを用いるべきか、どの順番でライブラリを呼び出させるべきか、どのように加工すべきか、どのようにパラメータを設定すべきかなどに工夫を凝らしており、それらに個性が表れている。
(4)本件各資料は、いずれも要求定義又は外部設計に関するものにすぎず、DI社が要求している機能を実現するための指令の組合せは記載されていないから、本件プログラムに係る選択の幅を狭めるものではない。
(5)本件プログラムのうち、別紙6ソースコード目録記載1ないし14の各ソースコード(以下、番号に対応させて「本件ソースコード1」などといい、これらを一括して「本件ソースコード」という。)の表現自体、表現の組合せ、表現の順序には、次のとおり、選択の幅があるから、これらは創作的表現である。
ア ドロップダウンリストの生成
 本件ソースコード1は、ドロップダウンリストを「asp:DropDownList」を利用して別の箇所で生成しているが、別紙7同等の結果を得られる他の表現目録記載1の表現(以下、同別紙記載の表現を、同別紙記載の番号に対応させて「他の表現1」などという。)のように、ドロップダウンリストを直接生成することもできる。
イ サブルーチン
 以下のとおり、サブルーチン化するか否か、サブルーチン化するとしてどのようにサブルーチン化するかについて選択の幅がある。
(ア)本件ソースコード2は、判別処理をサブルーチン化して呼び出しているが、他の表現2のように、判別処理をサブルーチン化せずに直接記述することもできる。
(イ)本件ソースコード3のようにサブルーチンが長い場合には、他の表現3(1)及び(2)のように、更にサブルーチンとして分割することを選択し得る。
(ウ)本件ソースコード4のようにサブルーチン化されている部分については、他の表現4のように、サブルーチン化せずに結合することを選択し得る。
ウ 条件分岐及びループ
(ア)本件ソースコード5は、switch文で条件分岐を行っているが、他の表現5のように、if文のうち、if〜else−ifで表されるもの(以下「else−if」という。)で条件分岐を行うこともできる。
(イ)本件ソースコード6は、for文でループを行っているが、他の表現6のように、while文でループを行うこともできる。
(ウ)本件ソースコード7は、全てのデータに対してforeach文でループを行っているが、他の表現7(1)のように、あらかじめ決められた条件で抽出されたデータに対してのみループを行うことも可能であり、他の表現7(2)のように、for文でループを行うこともできる。
(エ)本件ソースコード8は、foreach文によるループの中で、求める条件が正しい場合に次の条件に進むように記述しているが、他の表現8のように、求める条件が正しくない場合にループをやり直すように記述することもできる。
(オ)本件ソースコード9は、else−ifで条件分岐を行っているが、他の表現9(1)のように、switch文で条件分岐を行うことも可能であり、他の表現9(2)のように、switch文に加えて、foreach文によるループの対象として、条件分岐の判別に必要な変数を直接取得することもできる。
エ 変数への設定
 本件ソースコード10は、変数に対して判別結果を直接設定し、条件演算子「?」、「:」を使用しているが、他の表現10のように、if文によって変数に設定する値を変えることもできる。実際の表現の方が簡潔に表現されているが、他の表現10にも、デバッグやログの出力をしやすいといった利点がある。
オ チェック処理
 本件ソースコード11は、int.TryParseメソッド(以下「TryParseメソッド」という。)の戻り値でドロップされた行番号のチェック結果を判別しているが、他の表現11のように、int.Parseメソッド(以下「Parseメソッド」という。)を用いて、まず行番号の取得を試みて、エラーが発生するかどうかでチェック結果を判別することもできる。
カ デバッグログを出力するコード
(ア)本件ソースコード12について、デバッグログは、プログラムの処理の流れや変数の内容がどのように変化しているのかを把握するのに役立つものであるから、デバッグログを出力するコードの挿入の有無にプログラム作成者の個性が表れる。
(イ)本件ソースコード13について、他の表現12(1)及び(2)のように、デバッグログを出力するコードを挿入することも選択し得る。
キ コメント
 本件ソースコード14等では、コメントによってソースコードで使用された変数の意味や式の内容を理解しやすくなり、保守及び変更をしやすくなるものであるから、コメントの有無及びその内容にプログラム作成者の個性が表れる。
【被告の主張】
 本件プログラムは著作物であるとはいえない。その理由は次のとおりである。
(1)原告は、DI社から指示を受け、同社から提供された本件各資料に沿って、本件プログラムを作成したにすぎない。
(2)別紙5開発状況一覧表「被告の主張」欄のとおり、本件プログラムは、@DI社から提供を受けたファイル(乙89〜98、100〜108、130、134)を利用して制作され、これらと類似するもの、すなわち、同別紙「DI社から提供」欄に「○」が付されているもの、ANetAdvantageを利用して制作され、それらのファイルに類似するもの、すなわち、同別紙「NetAdvantage」欄に「○」が付されているもの、BMicrosoftなどが提供する一般的なファイルを利用して制作されたもの、すなわち、同別紙「一般的なファイル」欄に「○」が付されているものに分類できるから、原告が本件プログラムを創作したとはいえない。
(3)著作権法はプログラムの機能を保護するものではないから、本件プログラムの機能はその著作物性を根拠付けるものではない。
(4)本件ソースコードは、いずれも創作的表現であるとはいえない。その理由は次のとおりである。
ア ドロップダウンリストの生成
 ASP.NET環境でドロップダウンリストを作成する方法には、一般に、本件ソースコード1の「asp:DropDownList」を用いる方法と、他の表現1のHTMLを用いる方法がある。また、本件ソースコード1は、宣言構文のとおりの一般的な記述である。
イ サブルーチン
(ア)本件ソースコード2のように、プログラム中で複数回の利用が想定される作業はサブルーチン化するのは一般的である。他の表現2を本件ソースコード2に変換することは容易であり、両者はほとんど相違しない。
(イ)本件ソースコード3は、サブルーチンが極めて長く、非効率である。
ウ 条件分岐及びループ
(ア)本件ソースコード5のように、3方向以上の条件分岐においてswitch文を使用することは一般的であり、他の表現5のように、else−ifを使用して同等の処理をできることも公知である。switch文の方が実行速度は速く、条件分岐が多い場合には可読性が高まるから、一般的によく使用されている。
(イ)本件ソースコード6のように、繰り返す回数が明らかなときにfor文を使用するのは一般的であるのに対し、他の表現6のように、while文を使用すると、取り込み開始が20列目を超えている場合はエラーを発生させるという要件との適合性が低く、不適当である。
(ウ)本件ソースコード7において、foreach文を使用することは一般的であるのに対し、他の表現7(1)は可読性が低下しており、他の表現7(2)もforeach文を使用する方が妥当であるから、いずれも不適当である。
(エ)本件ソースコード8は、if文を使用した一般的なものであるのに対し、他の表現8は、if文及びcontinueを使用しているが、一般的なものではなく、代替になるものではない。
(オ)本件ソースコード9は、else−ifを使用しているが、3方向以上の条件分岐の場合、switch文を用いるのが通常であるため、不適である。
エ 変数への設定
 変数に代入する値を条件に応じて変更する場合、他の表現10のように、if文を用いるのが通例であり、本件ソースコード10のように、条件演算子を用いると、デバッグやログ出力が難しくなり、可読性及び品質が低下する。
オ チェック処理
 本件ソースコード11のように、変換に失敗したときに細かい情報を取得する必要がないときにはTryParseメソッドを採用するのが妥当である。他の表現11のParseメソッドは、変換に失敗したときに細かい情報を取得する必要がある場合に採用されるものであり、コードが冗長となって、妥当でない。
カ デバッグログを出力するコード
(ア)本件ソースコード12について、デバッグログを出力するコードに創作性はなく、また、デバッグログを出力するコードの挿入は表現に当たらない。
(イ)本件ソースコード13について、デバッグログの出力は納品物には不要なものであり、本件取引基本契約で予定されていないものであるから、その挿入が可能であるからといって創作性は認められない。
キ コメント
 ソースコードに付随的に記載されるコメントは、プログラム(著作権法2条1項10号の2)を構成するものではない。
2 争点2(原告は本件プログラムの著作権を有するか)について
【原告の主張】
 本件プログラムの作成経緯等は次のとおりであり、原告は本件プログラムの著作権を有する。
(1)本件プログラムのうち、平成24年8月23日から平成26年3月31日までに作成されたものの作成者はMNU社の従業員であり、MNU社がその著作者となったが、原告は、それらの納入を受けることによって、本件業務委託基本契約16条1項に基づいてその著作権を取得した。
(2)本件プログラムのうち、平成26年4月1日から平成28年9月15日までに作成されたものは、原告の発意に基づき、原告の従業員である乙及び丙によって、職務上、作成されたものであり、その著作者は原告である(著作権法15条2項)。
(3)原告による成果物の著作権がDI社に帰属する旨の本件労働者派遣基本契約14条1項は、著作権法15条2項の別段の定めに当たらず、また、本件取引基本契約19条3項の著作権に関する協議の結果を示すものではなく、その他、原告とDI社の間で同項の協議は行われていないから、原告はなお本件プログラムの著作権を有している。
【被告の主張】
(1)【原告の主張】(1)は、不知。
(2)【原告の主張】(2)は、否認ないし争う。本件プログラムは原告の発意に基づき作成されたものではなく、また、その作成者は、本件労働者派遣基本契約に基づいてDI社に派遣されていた甲である。
(3)著作権法15条2項の別段の定めに当たり、また、本件取引基本契約19条3項の著作権に関する協議の結果を示すものに相当する本件労働者派遣基本契約14条1項に基づき、本件プログラムの著作権は、DI社に帰属する。
3 争点3(著作権侵害の成否)について
【原告の主張】
(1)被告は、X−Smartに本件プログラムを組み込み、これをクラウドサーバ上にアップロードして複製することにより、本件プログラムについての原告の複製権を侵害した。
(2)被告は、本件プログラムをクラウドサーバ上にアップロードして送信可能化することにより、本件プログラムについての原告の公衆送信権を侵害した。
(3)被告は、DI社から本件プログラムの複製物を使用する権原を取得した時に、同複製物が本件プログラムについての原告の著作権を侵害する行為によって作成されたものであることを知っていたから、本件プログラムの複製物を業務上コンピューターにおいて使用する被告の行為は、原告の著作権を侵害するとみなされる。
【被告の主張】
 否認ないし争う。
4 争点4(被告に著作権侵害について故意又は過失が認められるか)について
【原告の主張】
 被告は、X−Smartに本件プログラムを組み込み、これをクラウドサーバ上にインストールして使用しているから、著作権侵害について故意があるか、少なくとも、過失がある。
【被告の主張】
 否認ないし争う。
5 争点5(損害の発生の有無及びその額)について
【原告の主張】
 株式会社スリー・シー・コンサルティングが提供する開示決算自動化システムである「決算報告エクスプレス」は本件プログラムと機能において20%重複しているところ、「決算報告エクスプレス」のライセンス料は年間100万円であるから、本件プログラムのライセンス料は年間20万円とみるのが相当である。そして、被告が本件プログラムを組み込んだX−Smartを提供している会社は1500社を下らないこと、本件プログラムはX−Smartの一部であり、その寄与率は20%程度であることからすると、本件プログラムについて、平成26年6月9日から平成29年6月8日までの3年間における著作権の行使につき受けるべき金銭の額に相当する額(著作権法114条3項)は、1億8000万円(20万円×3年×1500社×20%)を下らない。
【被告の主張】
 否認ないし争う。本件プログラムはX−Smartのうち、「X−Smart.」だけにオプションとして備わっている機能であり、そのオプション利用料は年間10万円であって、その提供先は11社にすぎない。
第4 当裁判所の判断
1 事実認定
 前記前提事実、後掲各証拠(以下の認定に反する部分を除く。)及び弁論の全趣旨によれば、次の事実が認められる。
(1)本件プログラムの開発目的
 本件プログラムは、EDINETにおける取扱いに変更があったこと(前記第2の2(2)イ)を踏まえ、ユーザーが作成した会計に関するエクセルファイル等をX−Smartに取り込み、会計科目を開示科目に組み替え、編集作業等を経て、宝XBRLという名称の被告仕様のXBRL(以下「宝XBRL」という。)の形式に変換することを簡易に行うことなどを目的として開発されたものである(乙66)。
(2)本件各資料
 本件各資料は、平成24年8月1日から同年9月5日までの間に、DI社から原告に提供された資料であり(前記第2の2(3)ウ)、概要、次のような内容のものである(乙62ないし64、66ないし68、70)。
ア 本件資料1ないし3
 本件資料1及び2は、被告からX−Smartの開発を委託されていた富士通が作成したものであり、宝XBRLの定義、宝XBRLを構成する要素の組合せ等が記載されている。また、本件資料3は、本件資料1及び2を補充する内容が記載された被告作成の仕様書である。
イ 本件資料4
 本件資料4は、DI社が作成した本件プログラムの要求仕様書であり、前記(1)のとおりの開発目的や、開発言語はC#であり、NetAdvantage等のエクセルライブラリを使用することができることなどの開発要件に加えて、次のような本件プログラムの処理の概要が記載されている。すなわち、@開示科目が入力されたエクセルファイルをアップロードして、そのまま宝XBRL形式で出力すること、A会計科目が入力されたエクセルファイル、CSVファイル、TSVファイルを取り込み、宝XBRL形式で出力すること、B画面上で、アップロードするファイルを選択し、設定、編集すること、C画面上で、会計科目をドラッグし、開示科目にドロップすることによって組替操作を行うこと、D画面上で、開示科目の行の追加、削除等の編集をすることなどが記載されている。
ウ 本件資料5
 本件資料5は、DI社が作成した本件プログラムの要件定義書であり、次のような本件プログラムの処理の概要が記載されている。すなわち、@画面上で、アップロードするファイルのファイル形式がエクセルファイル、CSVファイル、TSVファイルのいずれであるかを選択し、取込みを開始する行を設定すること、A画面上で、会計科目をドラッグし、開示科目にドロップすることによって組替操作を行うこと、B画面上で、開示科目の行の追加、削除等の編集をすること、C画面上で、単位を編集すること、D画面上で、「出力」をクリックすると、宝XBRL形式で出力されることなどが記載されている。
エ 本件資料6
 本件資料6は、DI社が作成した本件プログラムの連携仕様書であり、次のような画面遷移、各画面の表示内容、動作内容が記載されているほか、ルールファイル等の定義が記載されている。すなわち、@アップロードするファイルのファイル形式を選択する画面には、ファイル形式の選択に用いられるドロップダウンリストや、選択したファイルの内容を確認する際に用いられる「内容確認」ボタンが表示されること、A上記@の「内容確認」ボタンをクリックすると、選択したファイルの内容を確認する画面に遷移すること、B上記Aの画面上で、アップロードされたファイルの内容を表示し、データの開始行を指定することができ、同画面上に表示されている「取込」ボタンをクリックすると、ファイルの取込みが開始されること、C組替操作を行う画面上で、会計科目をドラッグして開示科目にドロップすることによって組替操作を行うこと、D上記Cの画面上で、開示科目の行の追加、削除等の編集をすることなどが記載されている。
オ 本件資料7
 本件資料7は、本件プログラムの画面仕様書であり、本件資料6と同様の画面遷移、各画面内の表示内容、動作内容等が記載されている。
(3)開発状況等
ア 原告は、平成24年8月23日以降、DI社から、本件プログラムの設計、実装、結合試験等に係る発注を受け、同日から平成26年3月31日までの間はMNU社に委託し、同年4月1日から平成28年9月15日までの間は自ら上記発注に係るプログラムを開発して、順次、DI社に納品した(前記第2の2(3))。上記の開発過程においては、納品に係るプログラムについて、ユーザーからフィードバックを受けてプログラムの修正、追加等が必要になることがあり、そのような場合には、DI社から、修正、追加等に係る発注があり、MNU社又は原告は、同発注に係るプログラムを開発して、順次、DI社に納品していた。
イ 本件プログラムは、別紙5開発状況一覧表「甲15の枝番」欄記載のとおり、甲第15号証の1ないし66のソースコードから成るものであり、いくつかのソースコード(少なくとも、甲15の1、15の4の10、15の17。)は、DI社において、MNU社又は原告に対し、元となるデータ又はサンプルを提供するか、その作成方法を指示するなどして作成されたものである(甲14、15、30ないし33、乙82、92、101ないし107、130)。
ウ 本件プログラムは、ASP.NET環境下で、インフラジスティックス・ジャパン株式会社が提供する開発ツールであるNetAdvantageや、マイクロソフト社が提供するVisualStudio等を利用して開発された。本件プログラムのうち、いくつかのソースコード(甲15の2、15の3、15の5、15の9、15の10の9ないし12、15の12の3、15の15、15の16、15の18、15の20、15の23、15の25、15の28、15の30、15の33ないし35、15の38、15の41、15の44、15の46、15の49、15の51、15の54、15の57、15の65)は、NetAdvantageに含まれるファイル、VisualStudioで自動生成されるファイル、オープンソースからダウンロードしたファイルから作成されたものである(甲33、乙66、82、84ないし88、127、128)。
エ 本件プログラムのうち、いくつかのソースコード(甲15の36、15の59ないし63)は一般的な設定ファイル等である(甲33、乙82)。
(4)本件ソースコードに記述されている処理内容
 本件ソースコードには、それぞれ、別紙6ソースコード目録記載1ないし14のとおりの処理内容が記述されている(甲15、42、43、45)。
2 争点1(本件プログラムは著作物といえるか)について
(1)プログラムの著作物性の解釈
ア プログラムは、電子計算機を機能させて一の結果を得ることができるようにこれに対する指令を組み合わせたものとして表現したもの(著作権法2条1項10号の2)であり、所定のプログラム言語、規約及び解法に制約されつつ、コンピューターに対する指令をどのように表現するか、その指令の表現をどのように組み合わせ、どのような表現順序とするかなどについて、著作権法により保護されるべき作成者の個性が表れる。
 したがって、プログラムが著作物であるというためには、指令の表現自体、その指令の表現の組合せ、その表現順序からなるプログラムの全体に選択の幅があり、かつ、それがありふれた表現ではなく、作成者の個性、すなわち、表現上の創作性が表れていることを要すると解される。
イ そこで検討すると、前記1(1)、(3)イ認定のとおり、本件プログラムは、EDINETにおける取扱いに変更があったことを踏まえ、ユーザーが作成した会計に関するエクセルファイル等をX−Smartに取り込み、会計科目を開示科目に組み替え、編集作業等を経て、宝XBRLの形式に変換することを簡易に行うことなどを目的として開発されたものであり、相応の分量のソースコードから成るものである。
 しかしながら、前記1(2)に照らすと、DI社が原告に本件プログラムの開発を委託した際に提供された本件各資料のうち、少なくとも本件資料4ないし6には、本件プログラムに要求される機能及びそれを実現する処理、画面の構成要素等を別紙3本件プログラム説明書と同様のものとすることが概ね示されていたと認められる。
 また、前記1(3)認定のとおり、本件プログラムは、ユーザーからのフィードバックの結果を踏まえ、順次、DI社からの発注を受けて修正及び追加等をしながら開発されたものであり、その過程で、そのソースコードの一部については、DI社から元となるデータやそのサンプルが提供され、その作成方法を指示されるなどして作成されたものであること、その他、ソースコード中にNetAdvantageに含まれるファイル、VisualStudioで自動生成されるファイル、オープンソースからダウンロードしたファイルから作成された部分や、一般的な設定ファイル等である部分も相応に含まれていることにも照らせば、ソースコードの分量等をもって、本件プログラムに係る表現の選択の幅が広いと直ちにはいえない。
(2)原告が創作的表現であると主張している部分についての検討
 以上を前提として、本件プログラムのうち、原告が創作的表現であると主張している部分について検討する。
ア ドロップダウンリストの生成に係る部分
 前記1(4)認定のとおり、本件ソースコード1には、画面1の「ファイル形式」を選択するドロップダウンリストを生成する処理が記述されているところ、原告は、本件ソースコード1では、ドロップダウンリストを「asp:DropDownList」を利用して別の箇所で生成しているが、他の表現1のように、ドロップダウンリストを直接生成することもできるから、選択の幅があり、ここに原告の個性が表れている旨主張する。
 しかしながら、前記1(3)ウ認定のとおり、本件プログラムの開発はASP.NET環境下で行われているところ、証拠(乙227)及び弁論の全趣旨によれば、「asp:DropDownList」は、ドロップダウンリストを生成するためのツールとしてASP.NET環境で用意されているものであり、これを利用する方法は一般的なことであると認められるから、他の表現1があるとしても、「asp:DropDownList」を利用することに作成者の個性が表れているということはできない。
 また、本件ソースコード1の具体的な記述も、ASP.NET環境で利用可能な宣言構文のとおりのものであると認められる(乙227)のであって、作成者の個性が表れていると認めるに足りず、創作的表現であるとはいえない。
イ サブルーチンに係る部分
 原告は、本件ソースコード2ないし4について、サブルーチン化するか否か、サブルーチン化するとしてどのようにサブルーチン化するかについて選択の幅があると主張する。
 しかしながら、前記第2の2(5)ア認定のとおり、サブルーチンは、高等学校工業科用の文部科学省検定済教科書である乙232文献にも記載されているような基本的なプログラミング技術の一つであり、証拠(乙238、240)及び弁論の全趣旨によれば、プログラム中で繰り返し表れる作業につきサブルーチンに設定することで可読性及び保守性を向上させることができ、そのような観点からサブルーチンを設定することは一般的な手法であると認められるから、本件ソースコード2ないし4にサブルーチンが設定されているというだけでは、作成者の個性が表れているとはいえない。
 また、本件ソースコード3において、更にサブルーチンを設定しないことに何らかの目的、意図があるともいい難いから、サブルーチンを更に分割することができるというだけでは、作成者の個性が表れていると認めるに足りないというべきである。
 以上に加えて、原告は、上記の各点以外に、本件ソースコード2ないし4の記述に選択の幅があることを具体的に主張立証しておらず、これらを創作的表現であると認めるに足りない。
ウ 条件分岐及びループに係る部分
(ア)本件ソースコード5
 前記1(4)認定のとおり、本件ソースコード5には、画面1から画面2に遷移する際に呼び出されるサブルーチンのうち、アップロードしたファイルの種類を判別し、対応する画面を生成する処理が記述されているところ、原告は、本件ソースコード5では、switch文で条件分岐を行っているが、他の表現5のように、else−ifで条件分岐を行うこともできるから、選択の幅があり、ここに原告の個性が表れている旨主張する。
 しかしながら、証拠(乙223ないし226、232、233)及び弁論の全趣旨によれば、switch文は、複数の選択肢の中から式の値に合うものを選び、その処理を行うものであり、else‐ifは、複数の条件のどれに当てはまるかによって異なる処理を行うものであって、いずれも高等学校工業科用の文部科学省検定済教科書である乙232文献その他複数の文献(乙223ないし226、233)に記載されている条件分岐の基本的な制御文であり、3種類以上の場合に分けて条件を指定するときに使用されるものであると認められるから、本件ソースコード5のように、アップロードしたファイルの種類によって場合を分けて条件を指定する必要がある場合に、switch文を使用すること自体は一般的なことであると認められ、そのことに作成者の個性が表れているということはできない。
(イ)本件ソースコード6
 前記1(4)認定のとおり、本件ソースコード6には、ファイルの何列目からデータを取り込むかを取得し、取り込み開始が20列目を超えているか否かを判別し、超えている場合にはエラーを発生させる処理が記述されているところ、原告は、本件ソースコード6では、for文でループを行っているが、他の表現6のように、while文でループを行うこともできるから、選択の幅があり、ここに原告の個性が表れている旨主張する。
 しかしながら、証拠(乙223ないし226、232、233)及び弁論の全趣旨によれば、for文は、繰り返す回数を指定して反復処理を行うものであり、while文は、指定した条件を満たす限り反復処理を行うものであって、いずれも、高等学校工業科用の文部科学省検定済教科書である乙232文献その他複数の文献(乙223ないし226、233)に記載されているループの基本的な制御文であり、for文で記述できるものはwhile文でも記述可能であると認められるから、本件ソースコード6のように、取り込み開始が20列目を超えているか否かをループ処理によって判別するに当たり、for文を使用すること自体は一般的なことであると認められ、そのことに作成者の個性が表れているということはできない。
(ウ)本件ソースコード7
 前記1(4)認定のとおり、本件ソースコード7には、ファイルの最大列数や項目名の開始列を取得する処理が記述されているところ、原告は、本件ソースコード7では、全てのデータに対してforeach文でループを行っているが、他の表現7(1)のように、あらかじめ決められた条件で抽出されたデータに対してのみループを行うことも可能であり、他の表現7(2)のように、for文でループを行うこともできるから、選択の幅があり、ここに原告の個性が表れている旨主張する。
 しかしながら、証拠(乙223ないし226、233)及び弁論の全趣旨によれば、C#において、foreach文は、複数のデータの集まりの各要素を最初から最後まで1回ずつ呼び出して処理するものであり、for文等と共に複数の文献(乙223ないし226、233)に記載されているループの基本的な制御文であって、for文等で記述された処理を代替し得るものであると認められるから、本件ソースコード7のように、ファイルの最大列数や項目名の開始列を判別するに当たり、foreach文を使用すること自体は一般的なことであると認められ、そのことに作成者の個性が表れているということはできない。
 また、他の表現7(1)及び(2)は、ループを行う範囲を限定するものであると認められるが、同等の処理を行うものと認められる本件ソースコード7と比べて記述が長く、可読性が低下していると認められるところ、あえてそのような記述をする必要があると認めるに足る証拠はないから、これを選択可能な他の表現であるとは認め難い。
(エ)本件ソースコード8
 前記1(4)認定のとおり、本件ソースコード8には、金額の単位を選択するために画面3に表示されるドロップダウンリストを生成するための判別処理等が記述されているところ、原告は、本件ソースコード8では、foreach文によるループの中で、求める条件が正しい場合に次の条件に進むように記述しているが、他の表現8のように、求める条件が正しくない場合にループをやり直すように記述することもできるから、選択の幅があり、ここに原告の個性が表れている旨主張する。
 しかしながら、前記(ウ)のとおり、foreach文は、ループの基本的な制御文であるから、本件ソースコード8のように、ドロップダウンリストを生成するための判別処理として、foreach文を使用すること自体は一般的なことであると認められ、そのことに作成者の個性が表れているということはできない。
 また、証拠(乙232ないし234)及び弁論の全趣旨によれば、他の表現8に用いられているcontinue文は、ループの中で使用され、その前のif文が真になった場合にcontinue以降の処理をスキップして、次のループ処理の最初に戻るものであると認められるものの、if文を用いた本件ソースコード8と比べてソースコードが長く、可読性が低下していると認められ、あえてそのような記述をする必要があると認めるに足る証拠はないから、これを選択可能な他の表現であるとは認め難い。
(オ)本件ソースコード9
 前記1(4)認定のとおり、本件ソースコード9には、画面2で選択された列の種別を判別して対応する処理が記述されているところ、原告は、本件ソースコード9では、else−ifで条件分岐を行っているが、他の表現9(1)のように、switch文で条件分岐を行うこともでき、他の表現9(2)のように、switch文に加えて、foreach文によるループの対象として、条件分岐の判別に必要な変数を直接取得することもできるから、選択の幅があり、ここに原告の個性が表れている旨主張する。
 しかしながら、前記(ア)のとおり、else−if及びswitch文は、いずれも条件分岐の基本的な制御文であるから、本件ソースコード9のように、画面2で選択された列の種別を判別して対応する処理を行うに当たり、else−ifで条件分岐を行うこと自体は一般的なことであると認められ、そのことに作成者の個性が表れているということはできない。
 また、証拠(乙222)及び弁論の全趣旨によれば、他の表現9(2)は、他の表現9(1)と同様のswitch文の中に統合言語クエリ(LINQ)を実行する処理に係る記述を挿入したものであると認められるものの、ソースコードが長く、可読性が低下していると認められ、あえてそのような記述をする必要があると認めるに足る証拠はないから、これを選択可能な他の表現であるとは認め難い。
(カ)小括(本件ソースコード5ないし9)
 原告は、上記(ア)ないし(オ)の各点以外に、本件ソースコード5ないし9の記述選択の幅があることを具体的に主張立証しておらず、これらを創作的表現であると認めるに足りない。
エ 変数への設定に係る部分
 前記1(4)認定のとおり、本件ソースコード10には、画面4に表示される会計科目のデータの判別及び設定を行う処理が記述されているところ、原告は、本件ソースコード10では、変数に対して判別結果を直接設定し、条件演算子「?」、「:」を使用しているが、他の表現10のように、if文によって変数に設定する値を変えることもできる、実際の表現の方が簡潔に表現されているが、他の表現10にも、デバッグやログの出力をしやすいといった利点があるのであって、選択の幅があり、ここに原告の個性が表れている旨主張する。
 しかしながら、証拠(甲48、乙236、237)及び弁論の全趣旨によれば、条件演算子は、条件に基づいて複数の処理を選択する演算子であると認められ、if文等の条件分岐の制御文と同様の処理を行い得るものであって、両者は代替され得るものとして認識されていると認められるから、本件ソースコード10のように、会計科目のデータの判別及び設定を行うに当たり、条件演算子を使用すること自体は一般的なことであると認められ、変数に対して判別結果が直接設定されることが特殊なことであると認めるに足る証拠もないから、それらに作成者の個性が表れているということはできない。
 また、原告は、上記の点以外に、本件ソースコード10の記述に選択の幅があることを具体的に主張立証していないから、これを創作的表現であると認めるに足りない。
オ チェック処理に係る部分
 前記1(4)認定のとおり、本件ソースコード11には、組替操作時に画面4でドロップされた行番号の取得及び変換を行う処理が記述されているところ、原告は、本件ソースコード11では、TryParseメソッドの戻り値でドロップされた行番号のチェック結果を判別しているが、他の表現11のように、Parseメソッドを用いて、まず行番号の取得を試みて、エラーが発生するかどうかでチェック結果を判別することもできるから、選択の幅があり、ここに原告の個性が表れている旨主張する。
 しかしながら、証拠(乙226、227)によれば、TryParseメソッド及びParseメソッドは、いずれもC#ライブラリに標準機能として搭載された、文字列を数値に変換する手法であるところ、TryParseメソッドは、変換に失敗したときに、例外として情報を取得し、それを精査することにより失敗の原因を究明することができるとされるParseメソッドとは異なり、戻り値として、失敗したという情報だけを取得し、ソースコードはParseメソッドより短くなると認められ、本件ソースコード11のように、ドロップされた行番号の取得及び変換を行うに当たり、TryParseメソッドを用いること自体は一般的なことであると認められ、そのことに作成者の個性が表れているということはできない。
 また、原告は、上記の点以外に、本件ソースコード11の記述に選択の幅があることを具体的に主張立証していないから、これを創作的表現であると認めるに足りない。
カ デバッグログを出力するコードに係る部分
(ア)本件ソースコード12
 原告は、本件ソースコード12にデバッグログを出力するコードが挿入されていることにプログラム作成者の個性が表れると主張する。
 しかしながら、弁論の全趣旨によれば、プログラムの開発過程において、プログラムの保守及び変更等の必要から、不具合があり得ると考えられるソースコード上にデバッグログを出力するコードを挿入することは一般的に行われていることであると認められるから、デバッグログを出力するコードが挿入されているというだけで、そのことに作成者の個性が表れているということはできない。
 また、本件ソースコード12のデバッグログを出力するコードの記述に作成者の個性が表れていることについて原告は具体的に主張立証していないから、これを創作的表現であると認めるに足りない。
(イ)本件ソースコード13
 原告は、デバッグログを出力するコードが挿入されていない本件ソースコード13に対し、他の表現12(1)及び(2)のように、デバッグログを出力するコードを挿入することも選択し得るとも主張するが、納品されるプログラムにデバッグログを出力するコードが挿入されていないこと自体は一般的なことであると考えられるから、そのことに作成者の個性が表れているということはできない。
キ コメントに係る部分
 原告は、本件ソースコード14等におけるコメントの有無及びその内容にプログラム作成者の個性が表れる旨主張する。
 しかしながら、前記(1)アのとおり、プログラムは、電子計算機を機能させて一の結果を得ることができるようにこれに対する指令を組み合わせたものとして表現したもの(著作権法2条1項10号の2)であるところ、コメントは、コンピューターの処理の結果に影響するものではなく、コンピューターに対する指令を構成するものであるとはいえないから、上記のプログラムに当たらない。
 また、原告は、本件ソースコード14のコメントの内容に作成者の個性が表れていることを具体的に主張立証しておらず、これを創作的表現であると認めるに足りない。
ク 小括(本件ソースコード)
 以上のとおり、原告が創作的表現であると主張している本件ソースコードについて、作成者の個性が表れているということはできず、著作権法で保護されるべき著作物であると認めることはできない。
(3)原告の主張について
 原告は、本件プログラムはプログラムの著作物に当たるとし、その理由として、@本件プログラムは、原告が創作した部分に限っても、合計4万0381ステップという膨大な量のソースコードから成り、指令の組み合せ方、その順序、関数化の方法等には無限に近い選択肢があること、A本件プログラムにおけるエクセル取込機能及び簡易組替機能は、一般的な用途に使用されるものではないから、これらの機能を実現するためのプログラムがありふれたものであるとはいえないこと、B原告は、NetAdvantageやVisualStudio等の開発ツールを用いながらも、ライブラリ群の中からどのライブラリを用いるべきか、どの順番でライブラリを呼び出させるべきか、どのように加工すべきか、どのようにパラメータを設定すべきかなどに工夫を凝らしており、それらに個性が表れていること、C本件各資料は、いずれも要求定義又は外部設計に関するものにすぎず、DI社が要求している機能を実現するための指令の組合せは記載されていないから、本件プログラムに係る選択の幅を狭めるものではないことを主張する。
 しかしながら、上記@について、前記(1)アのとおり、プログラムに著作物性があるというためには、プログラムの全体に選択の幅があり、かつ、それがありふれた表現ではなく、作成者の個性、すなわち、表現上の創作性が表れていることを要すると解されるところ、本件プログラムに表現上の創作性があることについて具体的に主張立証されない以上、前記(1)イで認定、説示したとおり、多くのステップ数により記述されていることをもって、直ちに表現上の創作性を認めることはできない。
 また、上記Aについて、原告の主張は、本件プログラムの機能の特殊性を指摘するにとどまっているところ、プログラムの機能そのものは著作権法によって保護されるものではなく、特定の機能を実現するためのプログラムであるというだけで、直ちに表現上の創作性を認めることはできない。
 さらに、上記Bについて、原告は、ライブラリの使用等にどのような工夫をしたかについて具体的に主張立証しておらず、その点に選択の幅があり、作成者の個性が表れていると認めるに足りない。
 また、上記Cについて、本件各資料にソースコードが具体的に記述されていないとしても、要求されている機能及び処理を実現するための表現に選択の幅があると当然にはいえないから、この点を考慮しても、本件プログラムに表現上の創作性を認めるに足りないというべきである。
(4)まとめ
 以上のとおり、原告が創作的表現であると主張している本件ソースコードについて、著作物性は認められない。
 そして、原告は、本件ソースコード以外、本件プログラムのどの部分に作成者の個性が表れているかを具体的に主張立証しておらず、本件プログラムに著作物性を認めるに足りないというべきである。
第5 結論
 以上によれば、その余の点について判断するまでもなく、原告の請求は理由がないからこれを棄却することとして、主文のとおり判決する。

東京地方裁判所民事第29部
 裁判長裁判官 山田真紀
 裁判官 矢野紀夫
 裁判官 西山芳樹


(別紙一覧)別紙1 当事者目録
別紙2 プログラム目録
別紙3 本件プログラム説明書
別紙4 資料目録
別紙5 開発状況一覧表
別紙6 ソースコード目録
別紙7 同等の結果を得られる他の表現目録
別紙8 本件プログラムの「選択の幅」に関する書面(甲42)
別紙9 本件プログラムの「選択の幅」に関する書面(甲45)
別紙10 本件プログラムの「選択の幅」に関する書面(甲43)

(別紙1)当事者目録
原告 ネクストソリューション株式会社
同訴訟代理人弁護士 白土文也
同 五月女智昭
被告 宝印刷株式会社
同訴訟代理人弁護士 六川浩明
同 コ永博久

(別紙2)プログラム目録
名称 X−Smart 簡易組替ツール
種類 企業内容開示(ディスクロージャー)担当者向けプログラム
機能 会計に関するExcelファイル等をX−Smart.内に取り込み、勘定科目を開示科目に簡易に組み替える。
作成者 原告
使用機種 Windowsパソコン
言語 C#4.0

(別紙3)本件プログラム説明書
1 X−Smartに取り込むファイルをアップロードする際に、まずアップロードするファイルを選択する画面(甲36の1・2。以下「画面1」という。)が表示される。画面1には、アップロードするファイルを指定する欄と、同ファイルのファイル形式を選択するドロップダウンリストが表示され、ファイル形式としては、開示科目が入力されているエクセルファイル又は会計科目が入力されているエクセルファイル、CSVファイル若しくはTSVファイルのファイル形式を指定し、アップロードすることができる。
2 画面1の「内容確認」ボタンをクリックすると、X−Smartに取り込む内容を設定する画面(甲37の1・2。以下「画面2」という。)に遷移し、画面2上でアップロードしたファイルの内容を確認し、X−Smartに取り込む列を設定することができる。
3 所定のファイルをアップロードした場合に画面2に表示される「単位設定」ボタンをクリックすると、単位を設定する画面(甲38の1・2。以下「画面3」という。)に遷移し、画面3上で、アップロードした所定のファイルの内容について、単位を設定することができる。
4 画面2又は画面3に表示される「取込」ボタンをクリックすると、前記2及び3の設定を反映した状態でファイルをX−Smartに取り込むことができる。
5 取り込んだデータに係る会計科目と開示科目を組み替える際には、画面(甲39の1・2、甲40の1・2。以下「画面4」という。)上で、会計科目をドラッグして開示科目にドロップすることによって行うことができる。
6 画面4上で、開示科目への行の挿入、削除等の編集をすることができる。
7 画面4に表示される「出力」ボタンをクリックすると、XBRL形式の開示書類を出力することができる。

(別紙4ないし10省略)
line
 
日本ユニ著作権センター
http://jucc.sakura.ne.jp/