判例全文 line
line
【事件名】バックアップソフトの著作権侵害事件(2)
【年月日】平成26年3月12日
 知財高裁 平成25年(ネ)第10008号 著作権侵害差止請求権不存在確認等請求控訴事件
 (原審・東京地裁平成24年(ワ)第5771号)
 (口頭弁論終結日 平成26年1月15日)

判決
控訴人 日本テクノ・ラボ株式会社
訴訟代理人弁護士 栄枝明典
同 石井尚子
同 内山浩人
訴訟復代理人弁護士 三浦友裕
被控訴人 新高和ソフトウェア株式会社
訴訟代理人弁護士 松島淳也
同 木村貴司
補佐人弁理士 廣田恵梨奈


主文
1 本件控訴を棄却する。
2 控訴費用は控訴人の負担とする。

事実及び理由
第1 控訴の趣旨
1 原判決を取り消す。
2 被控訴人の請求をいずれも棄却する。
第2 事案の概要
 本判決の略称は、「本件ソフトウェアのプログラム」を「本件プログラム」と、「原告ソフトウェアのプログラム」を「被控訴人プログラム」と各改め、以下に掲記するほかは、原判決に従う。
1 本件は、被控訴人プログラムを製造、販売する被控訴人が、被控訴人プログラムは控訴人の著作物である本件プログラムを複製又は翻案したものであり、被控訴人が被控訴人プログラムを製造、販売する行為は、控訴人が有する本件プログラムの著作権(複製権(著作権法21条)又は翻案権(同法27条)及び譲渡権(同法26条の2第1項))侵害に該当するとともに、控訴人の営業秘密である本件プログラム等の不正使用(不正競争防止法2条1項7号)に該当することを理由に、被控訴人に対し、著作権法112条1項及び不正競争防止法3条1項に基づく被控訴人プログラムの製造、販売の差止請求権を有するなどと控訴人が主張しているがそのような請求権は存在しないとして、控訴人の上記各差止請求権の不存在の確認を求めた事案である。
 原判決は、被控訴人プログラムの具体的記述から本件プログラムの表現上の本質的な特徴を直接感得することができないから、被控訴人プログラムが本件プログラムを複製又は翻案したものと認めることはできない、被控訴人が本件プログラムの表現上の創作性を有する部分を使用して被控訴人プログラムを製造し、販売したものとはいえない以上、被控訴人が控訴人の営業秘密である本件プログラムの表現上の創作性を有する部分を使用して被控訴人プログラムを製造し、販売したものとはいえない、エプソンチャイナ社からの本件要望事項それ自体が控訴人において秘密として管理されていたことを認めるに足りる証拠はなく、被控訴人が本件要望事項を利用し、これを搭載した被控訴人プログラムを製造したことについての具体的な主張立証もないとして、被控訴人の請求をいずれも認容したため、控訴人がこれを不服として本件控訴に及んだ。
2 争いのない事実等及び争点は、「争点1(本件ソフトウェアのプログラムの著作権侵害の成否)」を「争点1(被控訴人が被控訴人プログラムを製造、販売する行為についての本件プログラムの著作権(複製権又は翻案権及び譲渡権)侵害の成否)と改めるほかは、原判決「事実及び理由」の第2の1及び2記載のとおりであるから、これを引用する。
第3 当事者の主張
 当事者双方の主張は、原判決19頁13行目の「甲11」を「甲9」と改め、次のとおり当審における当事者双方の補充主張を付加するほかは、原判決「事実及び理由」の第3記載のとおりであるから、これを引用する。
1 争点1(被控訴人が被控訴人プログラムを製造、販売する行為についての本件プログラムの著作権(複製権又は翻案権及び譲渡権)侵害の成否)について
〔当審における控訴人の補充主張〕
(1) 依拠について
ア 本件プログラムは、控訴人が製作した「iDupli version1」(以下「旧バージョンプログラム」という。)をバージョンアップした「iDupli version2」である。控訴人は、被控訴人の代表者であるAから、プログラム開発の仕事の委託を懇願されたことから、被控訴人に対し、旧バージョンプログラムのバージョンアップ作業を委託することとして、開発内容の指示を行った上で、旧バージョンプログラムのソースコードを貸与した。
 したがって、旧バージョンプログラム及び本件プログラムの大部分は、控訴人により創作されたものである。
イ 被控訴人プログラムは、本件プログラムを作成し、内容を熟知した被控訴人が、本件プログラムを複製(デッドコピー)し、一部改変を加えて作成したものであるから、本件プログラムに依拠して作成された複製物又は翻案物であるというべきである。
 被控訴人プログラムは、本件プログラムのソースコードをデッドコピーして改変したプログラムであるため、創作性を有するもの及び有しないものも含めた本件プログラムにおける全表現が侵害されている。
ウ 被控訴人プログラムが本件プログラムのデッドコピーである根拠は、以下のとおりである。
(ア) 本件プログラム及び被控訴人プログラムは、画面の構成(表現)が酷似している。だからこそ、被控訴人は、平成23年9月時点において、本件プログラムの画面(創作性のある表現)と同一であった被控訴人プログラムの画面表示の位置を入れ替えた上で、本件プログラムとは異なる表現であるなどと主張しているのである。
(イ) 後記(2)において具体的に主張するとおり、被控訴人プログラムのソースコードの一部が本件プログラムと同一である。また、各プログラムのソースコードの構成は酷似している。
(ウ) 被控訴人は、本件プログラムの「CsvIDtask.cpp」クラスの全行を改変し、デッドコピーしたが、プログラム名「CsvIDtask.cpp」については、オリジナルのまま残した。
 被控訴人は、本件プログラムの受託開発作業のために入手したソースコードから、子クラスの名前、親クラスの名前、ソースコード上の単語などを部分的に置き換えて、あたかも違うソースコードのように見せかけようとする悪質な隠蔽工作を施した。
(エ) ソースコードに記述されるイベントの登録順序は、開発者が意図して登録し、記述するものであるところ、本件プログラム及び被控訴人プログラムは、イベントの登録順序が完全に酷似している。
(オ) 被控訴人プログラムにおいては、「System.xml」というXMLフォーマット環境設定ファイルを使用せずに「System.ini」を使用しているが、開示されたソースコードでは、「System.xml」を使用したままとなっている。被控訴人プログラムの「"CSysOption"」クラスが必要とするファイルは「"System.ini"」であり、「"System.xml"」ファイルは参照していないから、被控訴人プログラムが本件プログラムをデッドコピーして製作されたことは明らかである。
(2) 本件プログラムの創作性について
ア プログラムにおける具体的表現や記述は、コンピュータによって理解され、何らかの機能を実現するものであって、表現と機能とは密接不可分であり、独立したものではないから、プログラムの機能について主張したからといって、直ちに創作性がないということはできない。控訴人は、原審において、本件プログラムの表現上の工夫について、実際の具体的記述に沿って詳細に主張したにもかかわらず、原判決は表現が実現する機能面だけを取り上げ、創作性を否定した。
イ 原判決は、被控訴人プログラムの一部のソースコードについて、第三者(Baidu 社)が提供しているオープンソースソフトウェア(以下「本件オープンソースソフトウェア」という。)であると認定したが、被控訴人プログラムのソースコードの一部(原判決別紙5)がオープンソースソフトウェアであるとする証拠(甲11)は、本件オープンソースソフトウェアとは無関係のウェブ検索結果にすぎず、原判決は、証拠に基づかない認定をした。
ウ 原判決は、本件プログラム及び被控訴人プログラムにおいて、自動生成された部分が存在することを、本件プログラムの創作性を否定する根拠の1つとするが、「Visual Studio」におけるソースコードの自動生成とは、単に、プログラマが画面の設計やクラス、構造の設計等を入力する際、その入力データを基に、一部のソースコードについてキーボードを叩く作業を軽減し、作業効率を上げるための機能にすぎず、コーディング作業を一部簡素化する機能は、どのような開発環境であっても多かれ少なかれ有している機能である。仮に、自動生成された部分があったとしても、手打ち入力されたコードと異ならないのであるから、その具体的記述内容の創作性を検討すべきであり、自動生成であることのみを理由に創作性を否定した原判決は誤りである。
エ 原判決は、本件プログラム及び被控訴人プログラムにおいて、マイクロソフト社が公開している関数の名称の記述など、ありふれた表現が用いられていることを、本件プログラムの創作性を否定する根拠の1つとするが、著作権法がプログラムの著作物を保護する以上、命令語、関数名等の予約語がありふれたものであるとしても、直ちに作成者の個性が表れていないと解することはできない。
(3) 本件プログラムと被控訴人プログラムとの全体的な類似性について
ア クラス構造は、プログラムの構成を表すものであり、文学作品でいえば、文章構成・構造に相当する、いわゆる骨組みといえる部分である。
 したがって、どのような構造、構成を採用するかは、製作者の独創性、創造性が強く発揮される部分である。
イ 本件プログラム及び被控訴人プログラムは、クラス構造がほぼ1体1で対応するほど類似しているのみならず、原判決別紙1ないし12のとおり、ソースコードの具体的記載においても、キーワード変換をしているものの、その構成、内容、機能の組合せにおいて、ほぼ同一か、かなり類似している。
 例えば、本件プログラムの「CSplasnWnd」クラスと被控訴人プログラムの「CSplasnBox」とを比較すると、「CSplashBox」は「CSplashWnd」のソースコードに対してキーワード置換を行った後、コメント部分(機能しない部分)を2行ほど削除したものであって、両者のソースコードは構造及び表現においてほぼ同じである(原判決別紙5参照)。
 また、本件プログラムの「CTaskListPanel」クラスと被控訴人プログラムの「CTaskListBox」においても、双方に1行ずつの増減があるのみで、キーワード置換を除けば、両者のソースコードは構造及び表現においてほぼ同じである(原判決別紙2参照)。
 このように、本件プログラムと被控訴人プログラムとを比較すると、ほとんどの部分が同一又は類似した表現となっており、相違が認められる部分は些細なものにすぎないから、両者が同一又は類似していることは明らかである。
(4) 各クラスにおける同一性又は類似性について
ア 原判決別紙1及び2について
(ア) 被控訴人は、「IMPLEMENT_DYNAMIC」関数はありふれた関数であるとするが、前記のとおり、命令や関数がありふれていることをもって、直ちに著作権侵害が否定されるものではなく、用いられた命令や関数が具体的にどのような引数や組合せで用いられているかが重要である。被控訴人プログラムの具体的記述は、本件プログラムとは一見異なってみえるものの、それは、被控訴人が本件プログラムのソースコードを流用する際、流用の事実を隠匿するために、任意に指定できる関数名を近い意味の英単語に一括変換しているだけで、新たな創作性が発揮されているわけではない。「IMPLEMENT_DYNAMIC」は、いわゆるオブジェクトクラスの承継命令であり、クラス毎にコーディングしていくC++言語における構造部分にも当たる重要な箇所であるところ、被控訴人プログラムと本件プログラムのソースコードが、同じ場所で同じように承継命令を記載しているのは、クラス分け(分類と整理)の仕方がほぼ同じであるからにほかならない。
(イ) 被控訴人は、3か国言語に対応している部分及び次回の起動時に前回の終了時の状態から再開できるようにしている部分についても、具体的記述が異なると主張するが、具体的関数名が一見異なっていても、実質的に見て同じ関数の表記であるということができるし、前記(ア)と同様に、流用の事実を隠匿するために、任意に指定できる関数名を近い意味の英単語に一括変換したにすぎない。
イ 原判決別紙3について
 被控訴人は、「OnSize」メソッドは「Visual Studio」を使って自動生成されるものであり、ありふれた表現であると主張する。しかし、当該記述は16行に及ぶところ、このうち、「Visual Studio」を使って自動生成されるのは4行にすぎず、残りの12行についても、本件プログラムと被控訴人プログラムの具体的記述はほとんど同じである。前記のとおり、純粋な自動生成なる機能は存在せず、単にコーディングの手間を省くために、コーディング以外の操作をしているにすぎないから、結果として自動生成されているように見えるコードであっても、単に手入力の手間やミスを省いたにすぎず、プログラマの意思が反映されたソースコードそのものである。実際、「OnSize」メソッドを用いて上記4行を自動生成させるには、7通りの手順を踏む必要があり、手順が異なれば、当然、発生するソースコードも異なる。
 したがって、わずかな部分が自動生成されたからといって、創作性が否定されるわけではない。
 また、本件プログラムは、「OnSize」メソッドを利用することで、ウィンドウのサイズが変更された場合の挙動についてプログラミングしており、ユーザビリティを考慮して縦横ともに任意のサイズへの変更を認めた上、中身もリサイズする仕様としている点において、創作性を認めることができる。
ウ 原判決別紙4について
 「m_cbLanguage」をインターネット検索しても、3件又は2件しか検索結果として表示されないから、ありふれた関数であるということはできない。
 また、被控訴人プログラムは、@「AddString」命令で文字列を追加している対象がコンボボックスである点、Aコンボボックスに付けられた任意の名称が、同じ「m_cbLanguage」である点、B加えられる文字列が、プログラム実行時に選択できる3か国言語である点、C指摘した部分の行数が同じ4行で、並びも一緒である点等において、「AddString」関数の利用表現方法が本件プログラムと酷似しているものであるから、「AddString」があらかじめ用意された関数であることをもって、直ちに創作性を否定することはできない。
エ 原判決別紙5について
(ア) スプラッシュウィンドウの表示について、被控訴人プログラムが本件オープンソースソフトウェアにより作成されていることに関する証拠はない。被控訴人が根拠として指摘する甲11は、本件オープンソースソフトウェアとは無関係である。本件オープンソースソフトウェア開発元のウェブサイトには、被控訴人プログラムの当該部分と酷似するソースコードが掲載されているが、本件プログラムが納品された平成22年12月25日の後である平成23年12月27日に掲載が開始されたものである。
(イ) スプラッシュウィンドウをどの程度の時間、表示させるかは、本件プログラムの特性やユーザへの利便性を考えてチューニングした固有の数値である。仮に、「SetTimer」関数がありふれた表現であったとしても、「SetTimer(1,2000,NULL)」という表現全体の創作性を否定することはできない。
オ 原判決別紙7について
 被控訴人プログラムは、「AddPage」関数で追加されるタブ数が本件プログラムとは異なるが、これは、被控訴人プログラムが本件プログラムを流用した上で、機能を追加しているからにすぎない。被控訴人プログラムに、被控訴人が流用後に追加した機能やそれに対応するプログラムやソースコードが存在するからといって、本件プログラムの著作権侵害を否定する理由とはならない。
 また、「AddPage」関数があらかじめ用意された命令であるからといって、直ちに本件プログラムの創作性を否定することはできない。
カ 原判決別紙8及び9について
 被控訴人プログラムのパブリッシャー装置の状態を表示する部分は、被控訴人が本件プログラムのソースコードを流用する際、流用の事実を隠匿するために、任意に指定できる関数名を近い意味の英単語に一括変換しているだけで、新たな創作性が発揮されているわけではない。
 「SetTimer」関数については、前記エ(イ)のとおりである。
キ 原判決別紙10について
(ア) 被控訴人が主張する本件プログラムと被控訴人プログラムとの具体的記述の相違は、被控訴人が本件プログラムのソースコードを流用する際、流用の事実を隠匿するために、任意に指定できる関数名を近い意味の英単語に一括変換しているだけで、新たな創作性が発揮されているわけではない。
(イ) 被控訴人プログラムと本件プログラムとは、処理を3つの処理ブロックに分け、最初の条件に合うものを処理1で、2つめの条件に合うものを処理2で、いずれの条件にも合わないものを処理3でそれぞれ処理するという大きな分岐処理構造をほぼ同じ表現によって実現するものである。
(ウ) 被控訴人プログラムと本件プログラムとは、指定されたダイアログボックス内のコントロールのハンドルを取得するための関数である「GetDlgItem」関数が、同じ条件分岐の中に数多く記載されている点で共通している。また、取得対象となっているダイアログは、両プログラムともジョブのスケジューリング関係のダイアログである点についても共通している。「GetDlgItem」関数の数が異なるのは、被控訴人が控訴人からの著作権侵害という指摘を避けるため、本件プログラムが「WEEKDAY」と1行で処理している部分について、「SUNDAY」から「SATURDAY」まで別々にし、単純に行数を増やしたり、機能を追加したことに伴う変更にすぎず、被控訴人の創作性が発揮されているわけではない。
ク 原判決別紙11について
 本件プログラムは、「IMPLEMENT_DYNCREATE」関数を利用することで、「重複ソースコードを排除してメンテナンス性の向上を図るとともに承継先クラスの違いを意識することなく、CIDTask を扱うことができるように工夫して記述されており、被控訴人プログラムは、この点で共通している。
ケ 原判決別紙12について
(ア) ユーザのメニューアクセス性を向上させている部分については、被控訴人が本件プログラムのソースコードを流用する際、流用の事実を隠匿するために、任意に指定できる関数名を近い意味の英単語に一括変換しているだけで、新たな創作性が発揮されているわけではない。
(イ) 「AddNotifyIcon」の関数名がありふれていることをもって、直ちに創作性を否定することはできない。
(ウ) 処理作業中に利用者がアプリケーションの終了処理を行った場合の挙動について、被控訴人は、控訴人からの著作権侵害という指摘を避けるため、被控訴人プログラムについて、本件プログラムでは、2つの条件がand 条件で結ばれたif 文を2つのif 文に解体し、さらに、後に出現するメッセージを変数に置き換え、先だって変数にメッセージを代入するという変更を加えたが、この程度の変更が加えられていることをもって、具体的記述が異なるということはできない。
(エ) 「Delay」関数がありふれていることをもって、直ちに創作性を否定することはできない。
 アプリケーション終了確認に関する部分について、「Delay」関数自体は、特に引数に制限や推奨値はなく、プログラマが自由な数値を設定できるところ、本件プログラムでは、本件プログラム上で動く2つのプロセスの終了確認の間隔として最適な数値として、2つの「Delay」関数において各500ミリ秒が設定されている。当該数値は、経験則によりあらかじめ判明していたわけではなく、検証やテストにおいて得られた最適値として、控訴人の努力や工夫が込められた数値であって、これを漫然と流用して「Delay(500)」と記述した被控訴人の著作権侵害は明白である。被控訴人が、ミリ秒単位で本件プログラムと同じ遅延時間を流用できたことは、被控訴人プログラムの終了待ち対象の2つのプロセスが本件プログラムとほぼ同じであること、すなわち、両プログラムがほぼ同じであることを裏付けるものである。
(5) 以上によれば、被控訴人プログラムは、本件プログラムの著作権(複製権又は翻案権)を侵害しているというべきである。
〔当審における被控訴人の補充主張〕
(1) 依拠について
ア 被控訴人プログラムは、本件プログラムのデッドコピーではなく、被控訴人が自ら製作したものである。被控訴人プログラムが本件プログラムに依拠して製作されたものではないことは、原判決別紙1ないし12の本件プログラムと被控訴人プログラムとを対比しても、一致する行が1行もない全く異なるプログラムであることからも明らかである。
イ 被控訴人プログラムが本件プログラムのデッドコピーであるとする控訴人の主張は、以下のとおり誤りである。
(ア) 被控訴人プログラムと本件プログラムとは、少なくとも、@タブの数、Aディスク欄はあるがジョブ欄はない、Bジョブ最大容量欄、CDVDDL最大容量欄について異なるものである。
(イ) 被控訴人プログラムが、本件プログラムをデッドコピーした上で改変を加えて製作されたものであるならば、コメント部分は中国語ではなく、日本語となるはずである。被控訴人は、中国語の開発環境で、プログラムを自動生成する等の方法によって被控訴人プログラムを開発したからこそ、コメント部分が中国語となっているのである。
(ウ) 本件プログラムと被控訴人プログラムとは、プログラムの構造が異なるため、被控訴人プログラムでは、「System.xml」と「System.ini」の両方が必要となる。
(エ) 被控訴人は、被控訴人プログラムにふさわしいと考えられる名称をクラス名や変数名にて使用しているにすぎない。控訴人が主張する置換をしただけでは、本件プログラムのクラスが被控訴人プログラムのクラスの名称に置換されるものではない。
(2) 本件プログラムの創作性について
ア 原判決は、本件プログラムの具体的記述における表現上の創作性を有する部分と被控訴人プログラムの表現上の具体的記述とを対比し、被控訴人プログラムの具体的記述から本件プログラムの表現上の本質的な特徴を直接感得することができるか否かについて検討したものであって、原判決の判断手法及びその結論に誤りはない。
イ 控訴人は、原判決は本件オープンソースソフトウェアについて証拠に基づかない認定をしたと主張するが、同ソフトウェアは本件プログラムの納品日前には既に公開されていたものである。
ウ 「Visual Studio」におけるソースコードの自動生成を用いた場合、例えば、「OnSize」メソッドにおいて「<Add>OnSize」を選択すれば、だれが操作しても、必ず同じプログラムになるから、このようなプログラムは、「思想又は感情を創作的に表現したもの」(著作権法2条1項1号)には該当しない。
エ 本件プログラム及び被控訴人プログラムの共通部分は、いずれも命令語、関数名等の予約語等のありふれた表現において共通しているにすぎないのであるから、これらについて著作権法の保護が及ばないのは当然である。
(3) 本件プログラムと被控訴人プログラムとの全体的な類似性について
ア 原判決別紙1ないし12は、控訴人が提出した書証(乙4の1〜14)に基づいて作成されたものであるところ、当該書証は、被控訴人プログラムの内容を正確に反映していない。
 例えば、「OnSize」メソッドについて、被控訴人プログラムは空白行も入れて43行で構成されているが、原判決別紙3には、そのうち21行分しか記載されていない。
 また、原判決別紙3の「CChildview.cpp」に関する記載においては、被控訴人プログラムから、本件プログラムと一致しないソースコードが約85行削除されている。
 このように、控訴人は、被控訴人プログラムの重要なロジックを削除した上で対比表を作成しており、同対比表をもってしては、本件プログラムと被控訴人プログラムとの正確な対比はできない。
イ 被控訴人プログラムと本件プログラムとでは、実現しようとする機能が異なるし、動作するハードウェアも、被控訴人プログラムはセイコーエプソン株式会社(以下「エプソン」という。)製又はRimage社製のディスクパブリッシャーであり、本件プログラムはPrimera社製のディスクパブリッシャーである点についても異なるため、全体構造及びクラスの対応関係が一致することはなく、クラス数もソースコードの分量も全く異なり、クラスが1対1で対応しているわけではない。すなわち、被控訴人プログラムと本件プログラムとは、@クラス数及び分量、A実現しようとする機能、B動作するハードウェア、C表示画面のいずれもが異なる。
 また、控訴人が主張する一括置換を行っても、本件プログラムのクラス名称が被控訴人プログラムのクラス名称に置換されるものではないし、そもそも「CIDJob」のように1対1で対応していないクラスの場合、一括置換をすること自体、不可能である。
ウ 本件訴訟提起前の交渉段階において、控訴人が被控訴人に対して提示した、控訴人のエンジニアであるBが平成23年10月18日に控訴人代表者に対して送信した電子メール(甲30。以下「本件メール」という。)には、「NTLからは群刻で実装された各種重要機能について一切要求も資料も渡されていないのでその部分は、新高和が自前で企画、開発したものである。完全に無関係である。というわけでまともに争って勝てる保障はまったくなく、技術の進歩という点でのNTL の停滞、怠惰のみが目立つ。裁判所も古い既得権を認めなくなってきているのでどうするか?」との記載があり、控訴人も、被控訴人プログラムが本件プログラムに依拠したものではなく、完全に独立して製作されものであることを認識していたものである。
エ 控訴人は、原判決別紙11(乙4の13)の1行目に「CsvIDTask.cpp」と記載されていることをもって、被控訴人プログラムが本件プログラムに依拠して作成されたことの根拠とするようである。
 しかし、「CsvIDTask」の記載が残っているのは、訴訟外において被控訴人が控訴人から求められたソースコードの対比について準備を行った際の痕跡にすぎない。すなわち、被控訴人は、「CsvTask.cpp」と「CsvIDTask.cpp」とでは、実装されている内容が全く異なるものの、あえて被控訴人プログラムの「CsvTask.cpp」と対比するとしたら、本件プログラムの「CsvIDTask.cpp」になるであろうと考え、対比用のコメント(「CsvTask.cpp」が「CsvIDTask.cpp」に対応する旨のコメント)を被控訴人プログラムに追加した。しかし、訴訟外での対比は行われなかったため、コメント欄の記載を元に戻そうとしたところ、「CsvIDTask.cpp」を削除せずに、誤って「CsvTask.cpp」を削除してしまったものである。
(4) 各クラスにおける同一性又は類似性について
ア 原判決別紙1及び2について
(ア) 控訴人の主張は、マイクロソフト社が用意し、世界中のエンジニアが利用しているありふれた関数である「IMPLEMENT_DYNAMIC」命令の一般的な使用方法(機能やアイデア)を説明しているにすぎない。
 また、わずか1つの親クラスと1つの子クラスとの関係が類似していることをもって、ソースコードのクラス分けがほぼ同じであるとはいえないし、クラス分けがほぼ同じであることをもって、著作権侵害が認められるものでもない。
(イ) 控訴人の主張は、機能(アイデア)に関する主張であって表現に関する主張ではない上、機能としてもありふれている。控訴人は、3か国語で使用できる機能が同じであることから、文字列として各言語を変数に代入し、文字列を代入した変数を前提としてプログラミングしていると主張しているものであり、同じプログラムで処理できる部分はできるだけ共通化するというオブジェクト指向プログラムの基本的な発想の1例を紹介しているにすぎない。このような手法は公知である。
 また、被控訴人プログラム(GetString(IDS_JOBS_LIST)と本件プログラム(LoadResString(IDS_JOBS_LIST))の共通部分は「IDS_JOB_LIST」の部分だけであるが、「IDS_」という部分は文法上の規約であり、これらに「JOBS_LIST」というありふれた表現を結合させたにすぎないから、創作性がないことは明らかである。
 さらに、次回の起動時に、前回の終了時の状態から再開できるようにしているという点もアイデアにすぎず、プログラムにおける具体的記述も異なるものである。本件プログラムの表現を一括置換した事実もない(一括置換しても、「ALL」という部分は一致しない。)。
イ 原判決別紙3について
 控訴人は、「OnSize」メソッドについて、被控訴人プログラムの重要なロジックに関する部分を削除した上で、本件プログラムと一致するから著作権侵害であると主張するものであり、失当である。
 また、控訴人は、両者が一致すると主張する部分について創作性に係る主張をしないが、「m_splitter.MoveWindow」内の計算式が異なる等、表現自体が一致しておらず、共通部分は、自動生成された部分、マイクロソフト社があらかじめ用意している関数等、ありふれた表現が採用されている部分のみである。
ウ 原判決別紙4について
 控訴人が使用した検索エンジンとは異なる検索エンジンで「m_cbLanguage」をインターネット検索すると、多数のプログラム使用例が検索結果として表示されるから、当該関数がありふれた関数であることは明らかである。
 また、「AddString」命令で文字列を追加している対象がコンボボックスである点は、同命令の通常の用法であるし、「m_cbLanguage」自体もありふれた表現である。3か国語(英語、日本語、中国語)を選択できる点は、表現の問題ではないし、「自動」「英語」「日本語」「中国語」の順番に並んでいることに創作性はない。
エ 原判決別紙5について
(ア) 本件オープンソースソフトウェアは、複数のサイトで公開されているところ、遅くとも平成22年8月14日には公開されていたから、控訴人が納品日であると主張する平成23年12月27日の時点では、全世界中のエンジニアが利用できる公知の情報となっていたことは明らかである。
(イ) 2000ミリ秒という設定は、本件オープンソースソフトウェアでも使用されている設定であり、被控訴人が本件プログラムを開発した際、当該設定を参考にしたため、同じ数値となったにすぎない。タイムアウト値として設定される数字は、1秒、2秒、3秒等のきりのよい数値が採用されることが多く、2000ミリ秒という設定は、ありふれた設定にすぎない。
オ 原判決別紙8及び9について
 本件プログラムと被控訴人プログラムでは、インクの残量の表示方法自体、異なるものである。
カ 原判決別紙10について
(ア) 控訴人は、本件プログラム及び被控訴人プログラムは大きな分岐処理構造がほぼ同じ表現によって実現されていると主張するが、これは、単純に、コンピュータ言語の「if 文/else if文」の一般的な使用方法について説明しているにすぎない。しかも、本件プログラムは、if文の中に、さらにif文が記述される入れ子の構造が採用されているのに対し、被控訴人プログラムは、入れ子の構造が採用されていないという点においても異なる。
(イ) 控訴人は、「GetDlgItem」関数の数が異なるのは、被控訴人が控訴人からの著作権侵害という指摘を避けるために、本件プログラムが1行で処理している部分について別々にし、単純に行数を増やすなどしたにすぎないなどと主張するが、そもそも表現自体が一致していないのみならず、控訴人の主張によっても、被控訴人プログラムでは「GetDlgItem」関数が49回も用いられているのに対し、本件プログラムでは同関数が14回しか用いられておらず、両者には35行分もの差があることについて、合理的な説明がされているわけではない。
キ 原判決別紙11について
 控訴人の主張は、マイクロソフト社が用意し、世界中のエンジニアが利用しているありふれた関数である「IMPLEMENT_DYNCREATE」命令の一般的な使用方法(機能やアイデア)を説明しているにすぎない。
ク 原判決別紙12について
(ア) ユーザのメニューアクセス性を向上させている部分については、アイデアに係る主張にすぎない。しかも、被控訴人プログラムにおけるメニューでは、本件プログラムと同様の「メニューアクセス性を向上させる」工夫は採用されていない。
(イ) 控訴人は、被控訴人が一括置換をしたなどと主張するが、略語の意味を省略しないで表示した上で一括置換するという迂遠な方法を用いる必要性は乏しい。
 しかも、例えば、「OnSysHFMStart」関数について控訴人が主張する一括置換を行うと、「OnSysHotFolderListenerStart」となるはずであるが、これは、被控訴人プログラムの「OnHFLStart」とは一致しない。
(ウ) 処理作業中に利用者がアプリケーションの終了処理を行った場合の挙動に係る控訴人の主張は、ソフトウェア開発における常識的な処理を本件プログラム及び被控訴人プログラムが採用していることを意味するにすぎず、機能(アイデア)としてありふれたものにすぎない。
 また、本件プログラムではメッセージとして表示する内容をあらかじめ定義しているため、if 文の中の条件式が整理されているのに対し、被控訴人プログラムでは条件式自体が非常に複雑になっている点において、本件プログラムではif 文の中でさらにif 文を使用しているが、被控訴人プログラムではそのようになっていない点において、表示されるメッセージの具体的な内容も異なる点において、両者は明らかに異なる表現となっており、表現の共通性自体が存在しない。
(エ) 「Delay」関数においては、ミリ秒単位で数値を設定することが可能であるところ、通常では0.5秒(500)、1秒(1000)、2秒(2000)等のきりのよい数値が使用されているから、500ミリ秒に設定されたことに創作性を認める余地はない。
(5) 以上によれば、被控訴人プログラムは、本件プログラムの著作権(複製権又は翻案権)を侵害しているということはできない。
 したがって、被控訴人が被控訴人プログラムを製造、販売する行為が、控訴人が保有する本件プログラムの著作権(複製権又は翻案権及び譲渡権)の侵害行為に該当するとの控訴人の主張は理由がないから、控訴人が、被控訴人に対し、著作権法112条1項に基づく被控訴人プログラムの製造、販売の差止請求権を有するものとは認められない。
2 争点2(被控訴人が被控訴人プログラムを製造、販売する行為についての不正競争防止法2条1項7号の不正競争行為の成否)について
〔当審における控訴人の補充主張〕
(1) 本件プログラムに関するアイデアについて
ア 営業秘密の内容について
 原判決は、被控訴人が本件プログラムの表現上の創作性を有する部分を使用して被控訴人プログラムを製造し、販売したものとはいえない以上、営業秘密の不正使用には該当しないとするが、控訴人の主張を誤解するものである。控訴人は、原判決別紙1ないし12の対照表の一致又は類似したプログラムの各箇所における本件プログラムそのものが、表現であると同時に製作のアイデア(以下「本件アイデア」という。)を表すものであり、秘密として管理されている営業秘密であると主張するものである。
 すなわち、控訴人は、本件プログラムのソースコードのみならず、控訴人の従業員であるBが本件プログラムの製作を指示する際に開示した情報(乙32添付の表に記載された情報)及び本件プログラム製作の前提となるアイデアの営業秘密性を主張するものである。
 被控訴人は、控訴人から本件アイデアに基づく指示を受けて、本件プログラムを製作して納品しておきながら、秘かに同じアイデアに基づき被控訴人プログラムを製作して、控訴人と競合して販売しているのである。
イ 秘密管理性について
(ア) 控訴人と被控訴人との間には、本件業務委託基本契約のほか、平成19年10月1日付けシステムエンジニアリング・サービス契約(以下「本件SEサービス契約」という。)及び同日付け秘密保持契約(以下「本件秘密保持契約」という。)が締結され、被控訴人は、控訴人に対し、上記各契約の守秘義務条項のほか、開発管理規程(乙36)、誓約書(乙37)、アクセス管理規則(乙38)に基づいて、さらには、いわゆる善管注意義務及び契約当事者間に認められる当然の保護義務として、守秘義務を負っていたものである。
 本件SEサービス契約9条1項ただし書において、被控訴人の従業員が控訴人の構内若しくは控訴人の指定する作業場所に駐在して知り得た情報については、秘密情報である旨の特定及び表示の有無にかかわらず、秘密情報と同様に扱うものとされている。控訴人の担当者は、控訴人の構内において、被控訴人の担当者に対し、本件プログラムの製作について指示を行い、本件アイデアを開示したのであるし、控訴人が指定した上海の被控訴人の事業所において被控訴人が知り得た情報(控訴人からの業務受託により生成した情報)も、秘密情報として扱われることになる。
 被控訴人は、営業秘密である旨の表示がされていないなどと主張するが、機密である旨の表示とは、機密という文言が明記されていなければならないというものではなく、機密である旨の趣旨を読み取ることができれば足りる。アクセス管理規則、誓約書及び開発管理規程の存在自体が、機密である旨を表示するものであるということができる。
(イ) 本件プログラムは、製作時においても製作担当者以外はアクセスしてはならない仕組みになっており、完成したソースコードは、控訴人のサーバで厳格に秘密として管理され、特別なパスワードを用いなければアクセスできなかったから、秘密管理性が認められる。
(2) 本件要望事項について
ア 原判決は、本件要望事項それ自体が控訴人において秘密として管理されていたことを認めるに足りる証拠はないとするが、本件業務委託基本契約に基づいて控訴人から受託して営業活動を行った被控訴人が守秘義務を負っていたことは、前記(1)のとおりである。それにもかかわらず、被控訴人が本件要望事項を秘密として管理していなかったのであれば、むしろ被控訴人の債務不履行であり、そのことにより営業秘密性が否定されるのは背理である。
イ 原判決は、被控訴人が本件要望事項を利用し、これを搭載した被控訴人プログラムを製造したことについての具体的な主張立証はないとするが、被控訴人プログラムが本件要望事項に対応した新機能を有していること自体は当事者間に争いがない。被控訴人は、本件要望事項を知りながら、本件プログラムと競合する被控訴人プログラムをエプソンチャイナ社に売り込んだのであるから、本件要望事項を満たす機能を追加するのは当然である。
〔当審における被控訴人の補充主張〕
(1) 本件プログラムに関するアイデアについて
ア 営業秘密の内容について
 控訴人は、控訴人及び被控訴人間の本件業務委託基本契約の守秘義務条項等に基づいて、本件アイデア及び本件要望事項が営業秘密であると主張する。
 しかしながら、控訴人が主張する各契約は、守秘義務の対象を明確化するために、営業秘密の定義規定を設け、不正競争防止法における「営業秘密」より狭い範囲の情報に対してのみ、秘密保持義務を課すものであるところ、上記各事項は、いずれも秘密である旨が表示されるなどの要件を充足するものではないから、控訴人の主張は失当である。
イ 本件プログラムについて
 本件プログラムと被控訴人プログラムとは、マイクロソフト社が提供している関数、オープンソースソフトウェア、自動生成されるプログラム等が一致しているにすぎず、これらのありふれた表現は、非公知性及び秘密管理性の要件を具備しない。
 しかも、本件メールに記載されているとおり、控訴人も、被控訴人が控訴人から営業秘密を開示されておらず、これを使用していないことを認識していたというほかない。
(2) 本件要望事項について
ア エプソンチャイナ社が控訴人に対して本件要望事項を伝えていたのであれば、これらの機能を開発することは容易なはずであるが、控訴人が本件プログラムをエプソンチャイナ社に販売できていないことからすると、そもそも控訴人がこのような要望事項をエプソンチャイナ社から聞いていないものと推測される。
 したがって、本件要望事項は、エプソンチャイナ社がディスクパブリッシャー用ソフトウェアを購入する前提条件であるということはできないから、有用性はないというべきである。
イ 被控訴人は、控訴人から本件要望事項を示されたことはないし、Aが控訴人の代理人としてエプソンチャイナ社と交渉した事実もない。控訴人は、エプソンチャイナ社の関連会社であるエプソン社及びエプソン販売社の担当者と知り合いであったのであるから、Aを代理人とする必要性はない。控訴人は、自ら営業秘密であると主張する本件要望事項の入手経緯自体把握しておらず、秘密管理性を認めることもできない。
 被控訴人は、被控訴人の製品に興味を抱いた方正集団(エプソンチャイナ社の販売代理店)から要望を受け、エプソン社製のディスクパブリッシャーに対応する被控訴人プログラムを開発したにすぎない。
第4 当裁判所の判断
 当裁判所も、被控訴人の本訴請求は、いずれも理由があり、これを認容すべきものと判断する。その理由は、次のとおりである。
1 争点1(被控訴人が被控訴人プログラムを製造、販売する行為についての本件プログラムの著作権(複製権又は翻案権及び譲渡権)侵害の成否)について
(1) プログラムの著作物性の判断基準
ア ある表現物が、著作権法の保護の対象となる著作物に当たるというためには、思想、感情を創作的に表現したものであることが必要であり、創作的に表現したものというためには、作成者の何らかの個性が発揮されたものであることが必要である。この点は、プログラムであっても異なるところはないが、プログラムは、「電子計算機を機能させて一の結果を得ることができるようにこれに対する指令を組み合わせたものとして表現したもの」(著作権法2条1項10号の2)であり、所定のプログラム言語、規約及び解法に制約されつつ、コンピュータに対する指令をどのように表現するか、その指令の表現をどのように組み合わせ、どのような表現順序とするかなどについて、著作権法により保護されるべき作成者の個性が表れることになる。
 したがって、プログラムに著作物性があるというためには、指令の表現自体、その指令の表現の組合せ、その表現順序からなるプログラムの全体に選択の幅があり、かつ、それがありふれた表現ではなく、作成者の個性、すなわち、表現上の創作性が表れていることを要する。
イ 著作物の複製(著作権法21条、2条1項15号)とは、既存の著作物に依拠し、その内容及び形式を覚知させるに足りるものを再製することをいう(最高裁昭和50年(オ)第324号同53年9月7日第一小法廷判決・民集32巻6号1145頁参照)。ここで、再製とは、既存の著作物と同一性のあるものを作成することをいうと解すべきであるが、同一性の程度については、完全に同一である場合のみではなく、多少の修正増減があっても著作物の同一性を損なうことのない、すなわち実質的に同一である場合も含むと解すべきである。
 次に、著作物の翻案(同法27条)とは、既存の著作物に依拠し、かつ、その表現上の本質的な特徴の同一性を維持しつつ、具体的表現に修正、増減、変更等を加えて、新たに思想又は感情を創作的に表現することにより、これに接する者が既存の著作物の表現上の本質的な特徴を直接感得することのできる別の著作物を創作する行為をいう。そして、著作権法は、思想又は感情の創作的な表現を保護するものであるから(同法2条1項1号)、既存の著作物に依拠して創作された著作物が思想、感情若しくはアイデア、事実若しくは事件など表現それ自体でない部分又は表現上の創作性がない部分において、既存の著作物と同一性を有するにすぎない場合には、複製にも翻案にも当たらないものと解するのが相当である(最高裁平成11年(受)第922号同13年6月28日第一小法廷判決・民集55巻4号837頁参照)。
 このように、複製又は翻案に該当するためには、既存の著作物とこれに依拠して創作された著作物との同一性を有する部分が著作権法による保護の対象となる思想又は感情を創作的に表現したものであることが必要である。
 そして、「創作的」に表現されたというためには、厳密な意味で独創性が発揮されたものであることは必要ではなく、筆者の何らかの個性が表現されたもので足りるというべきであるが、他方、プログラムの具体的記述自体がごく短く又は表現上制約があるため他の表現が想定できない場合や、表現が平凡かつありふれたものである場合には、作成者の個性が表現されたものとはいえないから、創作的な表現であるということはできない。
(2) 本件プログラムの表現上の創作性について
 被控訴人は、原判決別紙1ないし12のとおり、本件プログラムと被控訴人プログラムとを対比した上で、各クラスにおける同一性又は類似性について具体的に主張する。
 そこで、以下、被控訴人の上記主張について検討する。
ア 原判決別紙1及び2について
(ア) IMPLEMENT_DYNAMIC 命令について
 本件プログラムの記述は、「IMPLEMENT_DYNAMIC(CjobsListPanel、CPanel)」であり、被控訴人プログラムの記述は、「IMPLEMENT_DYNAMIC(CProjectListBox、CBox)」である。
 本件プログラムと被控訴人プログラムとの共通部分は、「IMPLEMENT_DYNAMIC 命令」を使用している部分であるが、証拠(甲22)によれば、「IMPLEMENT_DYNAMIC 命令」は、マイクロソフト社があらかじめ用意している関数であるから、当該関数を使用していることをもって、当該表現に創作性を認めることはできない。
 控訴人は、“CJobListPanelや”CTaskListPanel”の各クラスの上位クラスとして“CPanel”クラスを用意し、共通機能をCPanel”クラスにまとめ、“CJobListPanelや”CTaskListPanel”を派生クラスと定義することにより、同じ機能を実現するに当たり、記述の重複やコーディング量を減らす等の表現の工夫をしているなどと主張する。
 しかしながら、控訴人の上記主張は、「IMPLEMENT_DYNAMIC 命令」の一般的な機能を用いたプログラム作成上の工夫(アイデア)を説明するものにすぎず、上記共通部分に係る創作性について具体的に主張するものではない。
 また、控訴人は、「IMPLEMENT_DYNAMIC」は、いわゆるオブジェクトクラスの承継命令であり、クラス毎にコーディングしていくC++言語における構造部分にも当たる重要な箇所であるところ、被控訴人プログラムと本件プログラムのソースコードが同じ場所で同じように承継命令を記載しているのは、クラス分けの仕方がほぼ同じであるからにほかならないなどと主張するが、クラス分け(分類と整理)の仕方は、プログラムのアイデア又は解法に当たるものであって、プログラムの表現上の創作性を認める根拠となるものではない。
 したがって、控訴人の上記主張はいずれも採用することができない。
(イ) 3か国語対応について
 本件プログラムの記述は、「LoadResString(IDS_JOBS_LIST)」であり、被控訴人プログラムの記述は、「GetString(IDS_JOBS_LIST)」である。
 上記各記述のうち、「LoadResString」と「GetString」は、機能が共通するとしても、具体的表現が異なることは明らかである。
 そして、 本件プログラムと被控訴人プログラムとの共通部分は、「IDS_JOB_LIST」の部分であるが、証拠(甲29)によれば、このうち、「IDS_」の部分は文法上の規約に基づいて記載されたものである。また、「JOBS_LIST」の部分は、ジョブのリストを意味するものであり、ありふれた表現を結合させた記述にすぎないから、創作性を認めることはできない。
(ウ) 次回起動時の処理について
 本件プログラムの記述は、以下のとおりである。
 「theApp.m_jobMonitor.LoadJobs();」
 「theApp.m_jobMonitor.SaveJobs();」
 また、被控訴人プログラムの記述は、以下のとおりである。
 「theApp.m_projectListener.LoadAllProjects();」
 「theApp.m_ projectListener.SaveAllProjects();」
 このうち、「m_projectListener.SaveAllProjects」「m_jobMonitor.SaveJobs」と「m_projectListener.LoadAllProjects」「m_jobMonitor.LoadJobs」とは、意味自体は類似するものの、表現が異なることは明らかである。
 そして、本件プログラムと被控訴人プログラムとの共通部分は、「theApp.….Load…();」「theApp. ….Save…();」の部分であるが、このうち、「theApp」の部分はアプリケーションのオブジェクトであることを意味するものであり、「Load」「Save」の部分は読み出し・書き込みを意味する語として、いずれもありふれた表現にすぎず、創作性を認めることはできない。
 控訴人は、本件プログラム及び被控訴人プログラムの3か国言語に対応している部分及び次回の起動時に前回の終了時の状態から再開できるようにしている部分は、具体的関数名が一見異なっていても、実質的に見て同じ関数の表記であるということができるし、被控訴人は、控訴人プログラムの流用の事実を隠匿するために、任意に指定できる関数名を近い意味の英単語に一括変換したなどと主張する。
 しかしながら、控訴人の主張は、上記各プログラムがいずれも3か国語に対応し、次回の起動時に前回の終了時の状態から再開できる機能を有していることを主張するものにすぎず、プログラムの表現の創作性を認める根拠となるものではない。
 また、控訴人の主張する一括置換をしても、「ALL」という部分は一致しないから、一括置換をしただけでは、同一の記述となるものでもない。
 したがって、控訴人の上記主張は採用することができない。
イ 原判決別紙3について
 証拠(甲9)によれば、「OnSize」メソッドをAdd(追加)する指示をすれば、「OnSize」メソッドが生成され、原判決別紙3の「void CChildView::OnSize(UINTn Type, int cx, int cy)CWnd::OnSize(nType, cx, cy)」までの部分は自動的に生成されるものと認められるから、当該部分は控訴人が記述したものということはできず、創作性を認めることはできない。また、証拠(甲32〜39)によれば、本件プログラム及び被控訴人プログラムの上記部分以降において共通して用いられているCRect、rcClient、GetClientRect、IsWindow、m_splitter、GetSafeHwnd、SetColumnInfo、Recalclayoutは、いずれもマイクロソフト社が用意している関数名であるか、分割ウィンドウを使用する際にプログラマが一般的に使用するありふれた名称であると認められる。
 したがって、原判決別紙3において、本件プログラムの創作性を認めることはできない。
 控訴人は、本件プログラムは「OnSize」メソッドを利用することで、ユーザビリティを考慮して縦横ともに任意のサイズへの変更を認めた上、中身もリサイズする仕様としている点において、創作性を認めることができるなどと主張するが、これらはプログラムの機能(アイデア)に当たるものであって、プログラムの表現の創作性を認める根拠となるものではない。
 したがって、控訴人の上記主張は採用することができない。
ウ 原判決別紙4について
 本件プログラムの記述は、以下のとおりである。
 m_cbLanguage.AddString(_T(”Automatically”));
 m_cbLanguage.AddString(_T(”English”));
 m_cbLanguage.AddString(_T(”日本語”));
 m_cbLanguage.AddString(_T(”筒体中文”));
 また、被控訴人プログラムの記述は、以下のとおりである。
 m_cbLanguage.AddString(GetString(IDS_AUTOMATICALLY));
 m_cbLanguage.AddString(GetString(IDS_ENGLISH));
 m_cbLanguage.AddString(GetString(IDS_JAPANESE));
 m_cbLanguage.AddString(GetString(IDS_CHINESE));
 そして、「cb」は、コンボボックス(combo box)の頭文字からなる文字列であり、コンボボックスを意味する表現として慣用されるものと認められるところ(甲10 )、本件プログラムと被控訴人プログラムとの共通部分である「m_cbLanguage.AddString」のうち、「m_cbLanguage」は、コンボボックス(combo box)で「言語」(Language)を選択するための関数であるため、combo boxの頭文字とLanguageとを結合した表現であることは明らかである。また、証拠(甲10)によれば、AddStringは、マイクロソフトがあらかじめ用意していた関数名であると認められるから、「m_cbLanguage.AddString」は、「m_cbLanguage」という文字列とAddStringとを文法に従って結合させたものにすぎず、創作性を認めることはできない。
 控訴人は、「m_cbLanguage」をインターネット検索しても、3件又は2件しか検索結果として表示されないから、ありふれた関数であるということはできない、被控訴人プログラムは、@「AddString」命令で文字列を追加している対象がコンボボックスである点、 A コンボボックスに付けられた任意の名称が、 同じ「m_cbLanguage」である点、B加えられる文字列が、プログラム実行時に選択できる3か国言語である点等において、「AddString」関数の利用表現方法が本件プログラムと酷似していると主張する。
 しかしながら、上記のとおり、「m_cbLanguage」は、combo boxの頭文字とLanguageとを結合した表現にすぎず、インターネット検索において数件しか検索結果として表示されないことをもって、創作性を認めることはできない。また、@及びAの事項は、上記のとおり、使用言語を選択可能とする機能を実現するために採用されたありふれた記述にすぎず、Bの事情は、3か国言語に対応するという機能を意味するにすぎない。
 また、控訴人は、画面上のコンボボックスから3つの利用言語を即時に変更可能とすることにより、ユーザビリティの向上を図っているとも主張するが、これはプログラムの機能(アイデア)に当たるものであって、プログラムの表現の創作性を認める根拠となるものではない。
 したがって、控訴人の上記主張はいずれも採用することができない。
エ 原判決別紙5について
(ア) 証拠(甲9、23)によれば、原判決別紙5に係る本件プログラムの記述は、遅くとも平成22年8月14日にはBaidu 社から公開され、同年12月25日の時点では公知となっていた本件オープンソースソフトウェアを用いたものであると認められる。
 したがって、本件プログラムと被控訴人プログラムとの間において、本件オープンソースソフトウェアを用いた部分が共通するとしても、本件プログラムの著作権を侵害するものということはできない。
 控訴人は、原判決が、同判決第3の1(2)ア(イ)dの被控訴人の主張を援用して、本件オープンソースソフトウェアに係る書証として摘示した甲11が本件オープンソースソフトウェアとは無関係であることを前提に、被控訴人プログラムが本件オープンソースソフトウェアにより作成されていることに関する証拠はないと主張するが、甲11は甲9の誤記と認められるから、控訴人の上記主張はその前提自体を欠き理由がない。
(イ) 「SetTimer」関数は、指定されたタイムアウト値を持つ1個のタイマを作成する機能に関し、マイクロソフト社があらかじめ用意している関数であり(甲13)、任意に設定可能であるタイムアウト値として2000ミリ秒(2秒)を選択したことをもって、プログラムの表現上の創作性を認めることはできない。
 控訴人は、スプラッシュウィンドウをどの程度の時間表示させるかは、本件プログラムの特性や利便性を考えてチューニングした固有の数値であり、仮に、「SetTimer」関数がありふれた表現であったとしても、「SetTimer(1,2000,NULL)」という表現全体の創作性を否定することはできないなどと主張するが、これはプログラムの機能(アイデア)に当たるものであって、プログラムの表現の創作性を認める根拠となるものではない。
 したがって、控訴人の上記主張は採用することができない。
オ 原判決別紙6について
 本件プログラムの記述は、「CString LoadResString(UINT nID);」であり、被控訴人プログラムの記述は、「CString GetString(UINT nID);」である。
 本件プログラムと被控訴人プログラムとの共通部分のうち、「CString」は、マイクロソフト社が用意した文字列に関するクラスの名称であり(甲25)、「UINT」は、データの型名であり文法で定められた表現にすぎない(甲26)。また、「nID」という変数名もありふれた表現である(甲27)から、創作性を認めることはできない。
 控訴人は、画面に表示する文字について、本件プログラムは「LoadResString」関数を定義・利用し、その関数中で多言語処理を行わせることによって、呼出元では使用言語を意識しないように工夫しているところ、被控訴人プログラムは、「GetString」関数を定義し、本件プログラムと同様に多言語処理を関数内で行わせることにより、呼出元では言語を意識しなくてもよいような作りとなっているなどと主張する。
 しかしながら、多言語処理を関数内で行わせることにより、呼出元では言語を意識しなくてもよいようにする点は、プログラムの機能(アイデア)に当たるものであって、プログラムの表現上の創作性を認める根拠となるものではない。
 したがって、控訴人の上記主張は採用することができない。
カ 原判決別紙7について
(ア) 本件プログラムの記述は、以下のとおりである。
 AddPage(&m_normalPage);
 AddPage(&m_discFormatPage);
 AddPage(&m_capacityPage);
 AddPage(&m_primeraPage);
 また、被控訴人プログラムの記述は、以下のとおりである。
 AddPage(&m_normalPage);
 AddPage(&m_jobPage);
 AddPage(&m_discFormatPage);
 AddPage(&m_mailPage);
 AddPage(&m_encryptPage);
 AddPage(&m_supSavPage);
 AddPage(&m_multiConnectionPage);
 AddPage(&m_hfPage);
 AddPage(&m_rimagePage);
(イ) 本件プログラムと被控訴人プログラムとの共通部分は、「AddPage(&m_normalPage)」、「AddPage( &m_discFormatPage)」の2行であるが、「AddPage」は、マイクロソフト社があらかじめ用意している命令である(甲14)。また、引数の「&m_normalPage」、「&m_discFormatPage」は、「AddPage」の対象が「normalPage」及び「discFormatPage」であることを意味するものにすぎず、創作性を認めることはできない。
 控訴人は、本件プログラムでは、“AddPage”命令を用いて機能ごとにグルーピングしてタブを設け、複数のタブを切り替え表示することにより、1画面に表示される情報量を少なくし、利用者の使い勝手をよくするよう工夫されているところ、被控訴人プログラムは「AddPage」関数で追加されるタブ数が本件プログラムとは異なるが、これは、被控訴人プログラムが本件プログラムを流用した上で機能を追加しているからにすぎず、被控訴人プログラムに、被控訴人が流用後に追加した機能やそれに対応するプログラムやソースコードが存在するからといって、本件プログラムの著作権侵害を否定する理由とはならないなどと主張するが、これはプログラムの機能(アイデア)に当たるものであって、プログラムの表現上の創作性を認める根拠となるものではない。
 したがって、控訴人の上記主張は採用することができない。
キ 原判決別紙8及び9について
(ア) 本件プログラムの記述は、以下のとおりである。
 DrawRobot(&dc);
 DrawInk(&dc);
 DrawDisc(&dc);
 DrawDriver(&dc);
 また、被控訴人プログラムの記述は、以下のとおりである。
 DrawPublisher(&dc);
 DrawInk(&dc);
 DrawBins(&dc);
(イ) 本件プログラムと被控訴人プログラムとの共通部分である「DrawInk(&dc)」は、表示に関する命令(「Draw」)に対象物(「Ink」)を結合させた記述にすぎず、パブリシャー装置のインクの残量の状態を表示させる命令として、創作性を認めることはできない。
 控訴人は、DrawRobot″、DrawInk″、DrawDisc″命令でパブリシャー装置の状態を表示して利用者の便宜を図るように工夫しているなどと主張するが、これはプログラムの機能(アイデア)に当たるものであって、プログラムの表現の創作性を認める根拠となるものではない。
 したがって、控訴人の上記主張は採用できない。
(ウ) 「SetTimer」関数については、前記エ(イ)で述べたとおりであり、創作性を認めることはできない。
ク 原判決別紙10について
(ア) 本件プログラムの記述は、以下のとおりである。
 if(CSV_JOB==m_nJobType)
(本件プログラムは、これに続いて、「GetDlgItem」命令を19回、if文を3回使用している。)
 else if(FOLDER_JOB==m_nJobType)
 また、被控訴人プログラムの記述は、以下のとおりである。
 if(NORMAL_PROJECT=m_nProjectType)
(被控訴人プログラムは、これに続いて、「GetDlgItem」命令を47回使用しているが、if文は使用していない。)
 else if(FOLDER_PROJECT==m_nProjectType)
(イ) 本件プログラムと被控訴人プログラムとの共通部分のうち、if文/else if文は、条件に応じた処理において一般的に用いられるところ、本件プログラムと被控訴人プログラムとは、具体的な判断条件の表現が異なっている。
 また、if文に続く部分は、「GetDlgItem」命令が記述されていることは共通しているものの、if文の利用の有無が異なっているのみならず、「GetDlgItem」命令の使用回数が大きく異なっている以上、各命令文の表現が一致しているとはいえない。 そして、「 GetDlgItem」命令は、マイクロソフト社があらかじめ用意している関数(甲15)であるから、本件プログラムの上記記述に創作性を認めることはできない。
 控訴人は、本件プログラムは、利用者がいちいち本件プログラムを操作しなくても書き込みが開始できる仕組みとして、@外部のコンピュータでCSVファイルを用意して、そのファイルを特定のフォルダに保存した時点で、CSVファイルの内容に従って書き込みを開始する方法(CSVジョブ)と、Aフォルダの容量を監視して一定容量を超えた際に書き込みを開始する方法(フォルダジョブ)を用意し、遠隔地からの処理や自動処理に対応する機能を備えているなどと主張するが、これはプログラムの機能(アイデア)に当たるものであって、プログラムの表現の創作性を認める根拠となるものではない。
 控訴人は、被控訴人プログラムと本件プログラムとは、処理を3つの処理ブロックに分け、最初の条件に合うものを処理1で、2つめの条件に合うものを処理2で、いずれの条件にも合わないものを処理3でそれぞれ処理するという大きな分岐処理構造をほぼ同じ表現によって実現するものであると主張する。
 しかしながら、分岐構造は、アルゴリズム(解法)に属するものであるのみならず、控訴人の主張する上記分岐構造は、プログラムの処理上、一般的に行われているものである(甲28)。このような分岐構造をif 文/else if文を用いて実現することは、if文/else if文の一般的な使用方法というべきであって、分岐構造が共通することをもって、著作権侵害を認めることはできない。
 したがって、控訴人の上記主張はいずれも採用することができない。
ケ 原判決別紙11について
 「IMPLEMENT_DYNCREATE」関数については、前記ア(ア)と同様に、当該表現に創作性を認めることはできない。
コ 原判決別紙12について
(ア) AddNotifyIcon等について
 本件プログラムの記述は、以下のとおりである。
 AddNotifyIcon();
 OnSysHFMStart();
 OnSysJMStart();
 OnSysTMStart();
 また、被控訴人プログラムの記述は、以下のとおりである。
 AddNotifyIcon();
 OnHFLStart();
 OnPLStart();
 OnTLStart();
 本件プログラムと被控訴人プログラムとの共通部分は、 関数名として「AddNotifyIcon()」を使用している部分であるが、証拠(甲17)によれば、「AddNotifyIcon()」は、関数名として一般的に多数使用されているものと認められるから、当該記述に創作性を認めることはできない。
 控訴人は、ユーザのメニューアクセス性を向上させるため、Windowsのタスクトレイにアイコンを表示し、それを右クリックするとメニューが選択できるように工夫しているなどと主張するが、これはプログラムの機能(アイデア)に当たるものであって、プログラムの表現の創作性を認める根拠となるものではない。
(イ) アプリケーションの終了処理について
 本件プログラムの記述は、以下のとおりである。
 if (theApp.m_taskMonitor.IsExistUnFinishedTasks()
 && AfxMessageBox(_T("There are some unfinished task(s).")
 _T(" ¥nThe exact status will lose if you close the application.
 ¥nAre you sure to close it?"), MB_YESNO) != IDYES)
 {
 m_bCloseSelected = FALSE;
 END_SIGN_LOCK(theApp.m_taskMonitor.m_bListCtrlAccessAble)
 return;
 }
 被控訴人プログラムの記述は、以下のとおりである。
 CString message=_T("Unfinished task(s) exist. \n")
 _T("If you close the application you will lost the status. \n")
 _T("Are you sure to exit application?");
 if (TheApp.m_taskListener. IsExistUnFinishedTasks())
 {
 if (AfxMessageBox(message, MB_YESNO) != IDYES)
 {
 a_bClosing=FALSE;
 SIGN_LOCK_END(theApp, m_taskListoner.m_bListCtrlAccessAble)
 return;
 }
 }
双方の記述を対比すると、まず、本件プログラムと被控訴人プログラムとの共通部分であるif文において、具体的な判断条件である括弧内の表現が異なっている。また、被控訴人プログラムにおいては、if文の条件が成立した場合に実行される命令列中に、さらにif文を使用して条件を判断しているのに対して、本件プログラムにはそのような記述はない。
 しかも、前記のとおり、if文は条件に応じた処理に一般的に用いられるものであるのみならず、「AfxMessageBox」関数は、あらかじめマイクロソフト社が用意している関数(甲18)であるから、いずれもありふれた表現にすぎず、当該記述に創作性を認めることはできない。
 控訴人は、アプリケーションの終了処理に際し、ディスクへの書き込み作業等が終了する前にアプリケーションが終了し、不具合が生じてしまうことを避けるため、一定間隔で作業の終了確認を行い、終了が確認できた場合に限り、アプリケーションが終了するように工夫しているなどと主張するが、これはプログラムの機能(アイデア)に当たるものであって、プログラムの表現上の創作性を認める根拠となるものではない。
(ウ) while ループ文の中のDelay 命令について
 本件プログラムの記述は、以下のとおりである。
 while(theApp.m_jobMonitor.IsWorking())
 Delay(500,FALSE);
 while(theApp.m_taskMonitor.IsWorking())
 Delay(500,FALSE);
 また、被控訴人プログラムの記述は、以下のとおりである。
 while(theApp.m_projectListener.IsRunning())
 Delay(500,FALSE);
 while(theApp.m_taskListener.IsRunning())
 Delay(500,FALSE);
 本件プログラムと被控訴人プログラムとの共通部分は、while文及び「Delay」関数を使用している点及び「Delay」関数の引数であるが、while文は文法上定められた表現であり(甲19)、「Delay」関数は、時間待ちの機能を実現するためにエンジニアが一般的に使用するありふれた関数名である(甲20)から、当該記述に創作性を認めることはできない。
 控訴人は、アプリケーションの終了処理に際し、一定間隔で作業の終了確認を行い、終了が確認できた場合に限り、アプリケーションが終了するように工夫しているが、その間隔が短すぎればその確認自体の処理の重さから終了処理が遅れる本末転倒の事態が生じかねず、逆に確認処理間隔が長すぎれば、すでに終了処理が終わっていても、アプリケーションが終わらないという無駄な時間が生じてしまうため、両者のバランスを考慮した結果、終了確認の間隔を500ミリ秒に調整したなどと主張するが、これはプログラムの機能(アイデア)に当たるものであって、「Delay」関数において、遅延させる数値を0.5秒(500)に設定したことをもって、プログラムの表現上の創作性を認めることはできない。
 したがって、控訴人の上記主張は採用することができない。
サ 小括
 以上のとおり、控訴人の指摘する本件プログラムと被控訴人プログラムとの共通部分において、本件プログラムの表現上の創作性を認めることができない以上、被控訴人プログラムが本件プログラムを複製又は翻案したものということはできない。
 控訴人は、そのほか、被控訴人プログラムは、本件プログラムを複製(デッドコピー)し、一部改変を加えて作成したものであるから、本件プログラムに依拠して作成された複製物又は翻案物であると主張し、その根拠として、本件プログラム及び被控訴人プログラムの画面の構成(表現)は酷似していること、クラス構造が類似していることなどを指摘する。
 しかしながら、同一の機能を有するプログラムが複数存在し得る以上、プログラムを実行した際の画面が類似するからといって、直ちにプログラムの著作権の侵害を根拠付けるものではないことは明らかである。クラス構造も、プログラムに係る具体的な記述ということはできない。原判決別紙1ないし12における本件プログラムと被控訴人プログラムとの具体的対比によれば、被控訴人プログラムの記述は、本件プログラムの記述と相当程度異なっており、被控訴人プログラムが本件プログラムを複製した上で一部改変を加えたものとも認めることはできない。
 前記のとおり、控訴人の指摘する本件プログラムと被控訴人プログラムとの共通部分において、本件プログラムの表現上の創作性を認めることができない以上、仮に被控訴人プログラムが本件プログラムに依拠して製作されたものであったとしても、被控訴人プログラムが本件プログラムを複製又は翻案したものということはできない。
 したがって、控訴人の上記主張はいずれも採用することができない。
2 争点2(被控訴人が被控訴人プログラムを製造、販売する行為についての不正競争防止法2条1項7号の不正競争行為の成否)について
(1) 本件プログラムに関するアイデアについて
ア 本件プログラムについて
 控訴人は、本件プログラム自体が不正競争防止法2条1項7号により保護される営業秘密であると主張する。
 しかしながら、前記1のとおり、被控訴人プログラムが本件プログラムを複製又は翻案したものと認めることはできず、被控訴人が本件プログラムの表現上の創作性を有する部分を使用して被控訴人プログラムを製造、販売したものとはいえない以上、その余の点について検討するまでもなく、控訴人の上記主張は採用することができない。
イ 本件アイデアについて
 控訴人は、控訴人の従業員であるBが本件プログラムの製作を指示する際に開示した情報(乙32添付の表に記載された情報)及び本件プログラム製作の前提となるアイデアが営業秘密に該当すると主張する。
 しかしながら、上記各情報が被控訴人プログラムにおいて使用されていることを認めるに足りる的確な証拠はない。
 したがって、その余の点について検討するまでもなく、控訴人の上記主張は採用することができない。
(2) 本件要望事項について
 本件要望事項は、エプソンチャイナ社から控訴人に対して指摘された本件プログラムの改善に関する要望事項であるが、控訴人及びエプソンチャイナ社との間で、本件要望事項が秘密として管理されていたことを認めるに足りる的確な証拠はない。
 また、控訴人の従業員Cが、平成23年1月17日、エプソンチャイナ社のDに対して送信した電子メール(乙25)には、製品向上のために本件要望事項に取り組む旨が記載されているが、当該メールは被控訴人に対して送信されたものではない。被控訴人の代表者であるAは、平成22年12月6日、エプソンチャイナ社と控訴人との会議に同席しているようであり(乙24の2)、そのような際に本件要望事項を知り得た可能性は否定できないが、これを控訴人の営業秘密であるとして、その保有者である控訴人から開示を受けたことを認めるに足りる的確な証拠もない。
 したがって、その余の点について検討するまでもなく、控訴人の上記主張は採用できない。
(3) 小括
 以上のとおり、被控訴人が被控訴人プログラムを製作し、販売したことが、控訴人の営業秘密である本件プログラム、本件アイデア及び本件要望事項に関する不正競争防止法2条1項7号の不正競争行為に該当するとの控訴人の主張は理由がないから、控訴人が、被控訴人に対し、同法3条1項に基づいて、被控訴人プログラムの製造、販売の差止請求権を有するものとは認められない。
3 結論
 以上の次第であるから、被控訴人の本訴請求はいずれも理由があるから、これを認容した原判決は相当であって、本件控訴は理由がないから、棄却されるべきものである。
 なお、控訴人の平成25年2月14日付け文書提出命令の申立て(平成25年(ウ)第10013号)については、本訴における控訴人の主張内容等に鑑みれば、既に書証として提出されている被控訴人プログラムのソースコード(甲7)のほかに、上記申立てに係る被控訴人プログラムのソースコードの証拠調べの必要性はないものと認められるから、上記申立てを却下する。

知的財産高等裁判所第4部
 裁判長裁判官 富田善範
 裁判官 田中芳樹
 裁判官 荒井章光
line
 
日本ユニ著作権センター
http://jucc.sakura.ne.jp/