SlideShare a Scribd company logo
3
Most read
5
Most read
11
Most read
新社会人が今すぐ使える、
ExcelでC#を使う方法
@hondarer
本田 哲夫
はじめに
 新年度ですね
 新しい気持ちで新しい職場に、夢いっぱいで着任した方も多
いのでは
(今日は、with JXUG, MSP, JXUG 学生支部ですし!!)
 しかしながら、多くの職場では”OA環境(笑)”しか用意
されない
 Visual Studioどころか、Accessすら使えなかったりする
 Visual Studio Codeすら許されない世界
 そういった高級なSE職においても、万能ツールこと
ExcelをC#でコーディングできる世界を提案してみる
自己紹介
 本田 哲夫 (@hondarer)
 (株)日立製作所 勤務
 普段は、納め先の計算機システムで使うWPFを使った内製
フレームワークの開発とか保守とかをしています
 古いインターフェースを持つさまざまなThingsとの相互運
用とか仕様調整とか実装とかやってます
Excelのオートメーション方法と
それぞれの特徴
 いくつかあります
 VBA(Visual Basic for Applications)
→誰でもできるが、すっかり構文忘れてるからだるい
 COMアドインを作ってGACに登録して使う
→RegAsm.exeだるい
 VSTO(Visual Studio Tools for Office)
→Visual Studioが必要だからだるい
 csc.exeを使ってCOMオートメーションでExcelを操作
→ワンファイルデプロイができないし第一だるい
OA環境しか与えられない社畜はVBAによる苦行を強いられる
そこそこ大きいIT系企業における
高級SE業務の特徴
 あらゆる調査はExcelへの記入を以て依頼・中継・集計を行う
 あらゆるシステム構成情報はExcelへの記入を以て行う
 スキーマのメンバ定義
 IPアドレス定義etc これらはマクロにて本番用の定義ファイルとなる
 あらゆる試験エビデンスはExcelにて整理される
 Excelは社内社外それこそ30億のデバイスでメールやファイ
ル共有やExchangeやLyncで拡散され半永久的に保守される
だからExcelファイル1つでどこでも動かないといけない
社畜は外部環境にも制限されVBAによる苦行を強いられる
もはやこれまでか…
我々は2004年の最新言語で今日も業務を行うのか…
あるものでなんとかできないか
 VBAは、VB6の仕様範囲において、Win32 APIの呼び出しを含
めてなんでもできる
 C#は、COMサーバー側に帰属させるのは面倒だが、C#から
COMオブジェクトを操作することはたやすい
 csc.exeは、大概のWindowsに(.NET Frameworkとして)インス
トールされている
組み合わせれば、なんとかなるのでは
設計してみる
①ExcelのVBAで、
ソースを吐く
②csc.exeでコンパイル
してexeを作成
③できたexeを実行
④Excelに
いたずらする
理論上はいけそう
DEMONSTRATION
高級SEが所属する仮想会社の“OA環境(笑)”のスペック
• Windows Server 2008R2
• Office 2010 Word/Excel/PowerPoint
• サクラエディタ のみとし、
• 外部からのツール追加導入は厳しく制限されているものとする
登場する社畜対応PCは
実在の団体のものではなく架空の設定です。
我々は何らに追加ソフトウェアのインストールを
必要とせず、ExcelとC#を融合させることができた。
高級SEにプログラムの喜びを再び!新人もワクワクを経験!
我々は、とうとう単独でメンテ可能で取引先にも送って使える
ツールフレームワークを今、手にしたのだ!!
Productionに際しての課題と対策
 コンパイルがエラーになったときわからない
 標準出力をVBA側で受け取ればよい
 高級なSEはExcelを複数開く。他のブックに誤介入しかねない
 OLEオブジェクトを列挙して、ApplicationオブジェクトあたりのhWnd
からプロセスを特定すれば何とかなります
 csc.exe / Excel のバージョンはいくつかある
 結果的にはファイルの有無だから、前さばきのVBA側でがんばればよい
 OLEをC#でいじると解放がもれたりするから怖い?という言い伝え
 1アクション毎にプロセスが死ぬので、ファイナライズされて実は安心
 途中で例外を起こすとExcelゾンビにはなりまーす
新社会人が今すぐ使える、
ExcelでC#を使う方法
ありがとうございました。
よい社畜ライフを!!
新社会人が今すぐ使える、​ExcelでC#を使う方法
新社会人が今すぐ使える、​ExcelでC#を使う方法
新社会人が今すぐ使える、​ExcelでC#を使う方法
新社会人が今すぐ使える、​ExcelでC#を使う方法
新社会人が今すぐ使える、​ExcelでC#を使う方法
新社会人が今すぐ使える、​ExcelでC#を使う方法
新社会人が今すぐ使える、​ExcelでC#を使う方法
新社会人が今すぐ使える、​ExcelでC#を使う方法

More Related Content

PDF
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
PDF
文字コードに起因する脆弱性とその対策(増補版)
PDF
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
PDF
テスト文字列に「うんこ」と入れるな
PDF
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
PDF
モジュールの凝集度・結合度・インタフェース
PDF
開発速度が速い #とは(LayerX社内資料)
PDF
ソフトウェアテスト入門
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
文字コードに起因する脆弱性とその対策(増補版)
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
テスト文字列に「うんこ」と入れるな
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
モジュールの凝集度・結合度・インタフェース
開発速度が速い #とは(LayerX社内資料)
ソフトウェアテスト入門

What's hot (20)

PDF
Lean coffee
PPTX
DAUを評価指標から捨てた会社の話 #tokyowebmining
PDF
世界でいちばんわかりやすいドメイン駆動設計
PDF
関数型言語ElixirのIoTシステム開発への展開
PPTX
SPAセキュリティ入門~PHP Conference Japan 2021
PDF
それはYAGNIか? それとも思考停止か?
PDF
リーン開発の本質 公開用
PPTX
WayOfNoTrouble.pptx
PPTX
振り返り(アジャイルレトロスペクティブズ)
PDF
Windowsフォームで大丈夫か?一番良いのを頼む。
PPTX
世界一わかりやすいClean Architecture
PDF
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
PDF
フロー効率性とリソース効率性について #xpjug
PDF
インタフェース完全に理解した
PDF
webエンジニアのためのはじめてのredis
PPTX
Redisの特徴と活用方法について
PDF
ドメイン駆動設計 失敗したことと成功したこと
PDF
ソーシャルゲームのためのデータベース設計
PDF
O/Rマッパーによるトラブルを未然に防ぐ
PDF
マルチテナント化で知っておきたいデータベースのこと
Lean coffee
DAUを評価指標から捨てた会社の話 #tokyowebmining
世界でいちばんわかりやすいドメイン駆動設計
関数型言語ElixirのIoTシステム開発への展開
SPAセキュリティ入門~PHP Conference Japan 2021
それはYAGNIか? それとも思考停止か?
リーン開発の本質 公開用
WayOfNoTrouble.pptx
振り返り(アジャイルレトロスペクティブズ)
Windowsフォームで大丈夫か?一番良いのを頼む。
世界一わかりやすいClean Architecture
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
フロー効率性とリソース効率性について #xpjug
インタフェース完全に理解した
webエンジニアのためのはじめてのredis
Redisの特徴と活用方法について
ドメイン駆動設計 失敗したことと成功したこと
ソーシャルゲームのためのデータベース設計
O/Rマッパーによるトラブルを未然に防ぐ
マルチテナント化で知っておきたいデータベースのこと
Ad

Similar to 新社会人が今すぐ使える、​ExcelでC#を使う方法 (20)

PDF
Excel VBAという諸刃の剣を真っすぐに扱うために
PPTX
C#でこなすexcel課題
PDF
オープンソースでExcelレポートプログラミング
PPTX
20170218 list format4bi
PDF
[Excel]basic training01(1/5)
PDF
VBA初級者講座サンプル
PPTX
業務アプリにおける VB との付き合い方
KEY
20121103 #odstudy できる! VBAマクロ
PDF
1歩目から間違えないためのExcel術 先生:田中亨(Office TANAKA)
PDF
Excel introduction
PDF
Excel kinou
PDF
Excel vba
PDF
20150302 java8 第一回_ラムダ式(1)
PDF
最強のExcel VBA基礎コース レジュメ
PDF
Corex MS-Excel(エクセル)研修
PPTX
Excel基礎講座
PDF
EXCEL,ACCESS,Microsoft365連携勉強会(01.本勉強会の趣旨)
PDF
ゼロからわかるVBA
PPTX
[勉強会資料] Excel + SharePoint + Power Platform によるローン返済シミュレーションアプリ開発
PDF
お客様が望んでいるモダンデスクトップアプリとは?/傾向と対策 Part2
Excel VBAという諸刃の剣を真っすぐに扱うために
C#でこなすexcel課題
オープンソースでExcelレポートプログラミング
20170218 list format4bi
[Excel]basic training01(1/5)
VBA初級者講座サンプル
業務アプリにおける VB との付き合い方
20121103 #odstudy できる! VBAマクロ
1歩目から間違えないためのExcel術 先生:田中亨(Office TANAKA)
Excel introduction
Excel kinou
Excel vba
20150302 java8 第一回_ラムダ式(1)
最強のExcel VBA基礎コース レジュメ
Corex MS-Excel(エクセル)研修
Excel基礎講座
EXCEL,ACCESS,Microsoft365連携勉強会(01.本勉強会の趣旨)
ゼロからわかるVBA
[勉強会資料] Excel + SharePoint + Power Platform によるローン返済シミュレーションアプリ開発
お客様が望んでいるモダンデスクトップアプリとは?/傾向と対策 Part2
Ad

新社会人が今すぐ使える、​ExcelでC#を使う方法