C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: エクセルのVBAで作業を簡略化させたい。


(過去ログ 92 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■54845 / inTopicNo.1)  エクセルのVBAで作業を簡略化させたい。
  
□投稿者/ おん (1回)-(2010/11/06(Sat) 14:57:35)

分類:[VB.NET/VB2005 以降] 

開発環境:WindowsVista Office Excel2007
言語:VBA(Visual Basic)

お世話になります。
現在、業務で30分くらいかかる作業を、5分程度で済ませるために、
Excelでプログラムを組もうとしています。

ただ、プログラムはC言語は知っていますが、VBAは初めてなため、
どのように書けばよいのか困っております。

フローチャートを書きましたので、
お分かりの方ご回答お願い致します。

概要:エクセルの表データからセルの値を抽出してテキストに表示させる。

フローチャート:A1セルからH1セルまで値が入っています。

$A = "11/6" '今日の日付(以下$付きの文字は変数です)
if (E1 == "終了"){
$flag = 1;
} else $flag = 0;

if ($flag == 0){
if (C1 == "異常事態"){
$B = "責任者";
$E = "登録日" '文字列を代入
$F = D1;
$C = F1;
$D = G1;
$G = A1;
} else if (H1に"緊急"という文字列が含まれている){
$B = "取締役";
$E = "期日";
$F = B1;
if (B1 < $A) {$C = "オーバー";}
else if (B1 == $A) {$C = "今日までに対応";}
else if (B1 > $A) {$C = F1;}
$D = H1;
$G = A1;
} else {
$B = "その他役員";
$E = "期日";
$F = B1;
if (B1 < $A) {$C = "オーバー";}
else if (B1 == $A) {$C = "今日までに対応";}
else if (B1 > $A) {$C = F1;}
$D = H1;
$G = A1;
}
}
if ($flag == 1) print "A1は終了";

print $A; '日付;
print $B; '担当;
print $C; '状況;
print $D; '件名;
print $E; '"登録日"または"期日"
print $F; '期日
print $G; '整理番号

以上、プログラムコード的に書いてみました。
これをVisual Basicに移植して、Excelの表から実行させて、
テキストファイルに表示させるにはどうしたらよいでしょうか?
不明な点は再度説明いたします。よろしくお願い致します。
引用返信 編集キー/
■54846 / inTopicNo.2)  Re[1]: エクセルのVBAで作業を簡略化させたい。
□投稿者/ shu (152回)-(2010/11/06(Sat) 15:41:20)
No54845 (おん さん) に返信

そのままVBAに直したものです。変数の宣言は Dim a as <型>のように書きます。
printはなんだか分からないのでそのままです。

A = Date '今日の日付(以下$付きの文字は変数です)
if Range("E1") = "終了" then
    flag = 1
else
    flag = 0
end if

if flag = 0 then
    if Range("C1") = "異常事態" then
        B = "責任者"
        E = "登録日" '文字列を代入
        F = Range("D1")
        C = Range("F1")
        D = Range("G1")
        G = Range("A1")
    elseif Instr(Range("H1"), "緊急") >0 then
        B = "取締役"
        E = "期日"
        F = Range("B1")
        if Range("B1") < A then
            C = "オーバー"
        elseif Range("B1") = A then
            C = "今日までに対応"
        elseif Range("B1") > A then
            C = Range("F1")
        end if
        D = Range("H1")
        G = Range("A1")
    else
        B = "その他役員"
        E = "期日"
        F = Range("B1")
        if Range("B1") < A then
            C = "オーバー"
        elseif Range("B1") = A then
            C = "今日までに対応"
        elseif Range("B1") > A then
            C = Range("F1")
        end if
        D = Range("H1")
        G = Range("A1")
    end if
end if

if flag = 1 then print "A1は終了"

print A    '日付;
print B    '担当;
print C    '状況;
print D    '件名;
print E    '"登録日"または"期日"
print F    '期日
print G    '整理番号

引用返信 編集キー/
■54847 / inTopicNo.3)  Re[2]: エクセルのVBAで作業を簡略化させたい。
□投稿者/ おん (2回)-(2010/11/06(Sat) 18:47:19)
お返事遅くなりまして申し訳ございません。
わざわざコードを打っていただいて誠にありがとうございます。

実行した結果、エラーなく動きました。
大体のソースコードの規則について分かりました。

月曜日までに仕上げたいと思っておりますので、
また分からないところがありましたらお願い致します。

しかし、今まで30分以上かかっていた作業が、VBAプログラムのおかげで、
5分足らずで済んでしまうことに大変感激しております。

あとは、メモ帳に結果を出力する作業だけだと思いますので、
どうぞよろしくお願い致します。

引用返信 編集キー/
■54850 / inTopicNo.4)  Re[3]: エクセルのVBAで作業を簡略化させたい。
□投稿者/ おん (3回)-(2010/11/06(Sat) 20:48:44)
度々失礼いたします。
再度質問させてください。

print A    '日付;
print B    '担当;
print C    '状況;
print D    '件名;
print E    '"登録日"または"期日"
print F    '期日
print G    '整理番号

として、ご回答を頂きました。
ここでのprintとは、テキストエディタ(メモ帳、TeraPadなど)に
データを出力することを考えております。

つまり、エクセル(本当はA1セル〜H100セルくらいまで)のデータに、
VBAのプログラムで操作をして、結果のA,B,C...Gの値を、
メモ帳に1:A,2:B,3:C,...7:G,として、出力したいと考えています。
(表示形式は、途中で日本語が入ったりします)

このような事は可能でしょうか?
恐れ入りますが宜しくお願い致します。

引用返信 編集キー/
■54851 / inTopicNo.5)  Re[4]: エクセルのVBAで作業を簡略化させたい。
□投稿者/ Azulean (635回)-(2010/11/06(Sat) 21:37:45)
まずは検索しましょう。
それでわからなかったときに、どの部分がわからないか、具体的に取り出して質問してみてください。

http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&num=50&q=Excel+VBA+%E3%83%A1%E3%83%A2%E5%B8%B3
引用返信 編集キー/
■54857 / inTopicNo.6)  Re[4]: エクセルのVBAで作業を簡略化させたい。
□投稿者/ shu (153回)-(2010/11/07(Sun) 07:00:39)
No54850 (おん さん) に返信
> として、ご回答を頂きました。
> ここでのprintとは、テキストエディタ(メモ帳、TeraPadなど)に
> データを出力することを考えております。
> 
> つまり、エクセル(本当はA1セル〜H100セルくらいまで)のデータに、
> VBAのプログラムで操作をして、結果のA,B,C...Gの値を、
> メモ帳に1:A,2:B,3:C,...7:G,として、出力したいと考えています。
> (表示形式は、途中で日本語が入ったりします)

VBAでのファイル書き出し処理

    Open "C:\Data\a.txt" For Output As #1
    Print #1, "改行しない";
    Print #1, "改行する"
    Close #1

引用返信 編集キー/
■54858 / inTopicNo.7)  Re[5]: エクセルのVBAで作業を簡略化させたい。
□投稿者/ おん (4回)-(2010/11/07(Sun) 07:42:53)
shu様

ありがとうございます。
朝早くからご回答いただき大変恐縮です。

明日月曜日までに仕上げる予定ですので、
完成できるよう頑張ります。

本当にありがとうございます。
取り急ぎ失礼いたします。
引用返信 編集キー/
■54872 / inTopicNo.8)  Re[6]: エクセルのVBAで作業を簡略化させたい。
□投稿者/ おん (5回)-(2010/11/08(Mon) 00:27:36)
shu様

VBAについて調べて若干補完しました。
結果、無事にテキストに出力することができました。

感謝感激です。
どうもありがとうございました!
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -