質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

3回答

6184閲覧

C++にて、エクセルファイルの行を削除

TatenoShunya

総合スコア7

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2015/11/18 07:32

MFCを用いてwindowsアプリを作っているのですが、
特定のエクセルファイルに対し、行を削除する処理を作りたいと思っています。
C++でエクセルのマクロを実行する方法や、エクセルファイルの行を削除する方法をご存知の方は
ご教授お願いします。

実行したい動作は以下の3文です。

if Rows(10).RowHeight Then
Rows(10).Delete
End if

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

Visual C++を使用してExcel(や他のOffice製品)をコントロールするにはCOMの理解が多少なりとも必要になります。COMの使い方を一から説明すると大変なので、Chironianさんが提示されているサイトはぜひ目を通しておいていただきたいと思います。

また上記の理由から直接のコードを提示するのは結構大変なので、道筋だけで勘弁してください。ただMFCを使用する場合、COMオブジェクトのラッパークラスを自動で作成してくれる機能がありますので、それを使用されると負荷が軽減すると思います。

Visual Studio 2008の場合ですが、
0. ソリューションエクスプローラ上で、プロジェクトを右クリック→追加→クラスを選択
0. 表示される「クラスの追加」ダイアログで、カテゴリを「MFC」、テンプレートを「TypeLibからのMFCクラス」と選んで「追加」ボタン
0. 「TypeLibクラス追加ウィザード」ダイアログで、使用できるタイプライブラリのドロップダウンからお目当てのオブジェクトを選択する。Ecelであれば「Microsfot Excel 14.0 Object Library<1.7>」というのが該当します(Office 2010の場合です、バージョンによって、数値が多少違ったりします)。
0. 必要なインターフェースを選択します。このあたりからExcel VBAのオブジェクト名から推測可能なインターフェース名になってくるので、マクロで使用されているオブジェクト名を追加していけばよいでしょう。

もし、違うバージョンのVisual Studioを使用されている場合、メニューの位置や機能が変更になっているかもしれませんので、そこは都度ご使用のバージョンに置き換えてみてください。

これで、Excelの機能を呼び出す手掛かりにはなったと思います。後はExcelのVBAで実現したい機能を書いてみて、それをVC++でラッパークラスを組み合わせて移植する、という流れになります。
また、ここでは説明しきれませんが、VBAではさらりと書かれている記述でも、VC++ではかなり遠回りな書き方が必要になったりします。実際に実装を進めてみて行き詰った時にまたこのサイトなどで相談されてみてはいかがでしょうか。

投稿2015/11/18 13:09

KoichiSugiyama

総合スコア3041

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

昔、ほんのちょっとだけ触ったことがあるのですが、オートメーションを使って操作できました。
具体的な部分は忘れてしまいましたが、下記をよく読めば記載されていそうです。

Visual C++ を使用した Office オートメーション
MFC およびタイプ ライブラリを使用してオートメーション プロジェクトを作成する方法

でも、かなりたいへんそうですので、他の方から直接的な回答があればそちらを参照された方が良いと思います。

投稿2015/11/18 07:59

Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

C#によるExcelの行削除・挿入
が参考になるでしょうか?

投稿2015/11/18 07:47

Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問