url
1 名無しさん@おーぷん 2016/07/05(火)14:52:15 ID:Xdc

シートの”C2”に「値1」、”D2”に「値2」、”E3”に「演算方法」、を入力した値を元に”F3”に演算結果を出力するプログラムを作りなさい。
「値1」、「値2」には数値を「演算方法」には”+”、”-”、”*”、”/”の記号を入力するもとします。
可能であれば指定された値以外が入力された場合、エラーときてMsgboxで表示しなさい。
詳しい人教えて

2 名無しさん@おーぷん 2016/07/05(火)14:55:07 ID:CsS

VBA使わなくても出来るじゃん


プログラミングってなんなの?
「最も恐ろしいプログラミング言語」 5万人のプログラマが回答 1位はVisual Basic
面接官「Excel使えますか?」僕「VBAはもちろんCOMアドインの開発もできます!」
一年前俺「エクセルの表もろた」先輩「念のため電卓叩いとけ」
3 名無しさん@おーぷん 2016/07/05(火)14:57:17 ID:p1t

マクロの記録→手動で目的の操作を行う

で生成されたコードを参考にしたら

5 名無しさん@おーぷん 2016/07/05(火)15:15:57 ID:XBQ

var c2 = 2, d2 = 3, e3=['+', '-', '*', '/'];
console.log(eval(c2+e3[0]+d2));

JavaScriptで無理矢理書くとこんなかんじ

6 名無しさん@おーぷん 2016/07/05(火)15:16:30 ID:Xdc

あ、ちなみに
Excelのvbでやってる

8 名無しさん@おーぷん 2016/07/05(火)15:17:24 ID:XBQ

>>6
すまん、Excelが手元に無いんだ

9 TimeFires◆BFU2tXFOi7w3 2016/07/05(火)15:18:01 ID:9ls

>>8
フリーのOpenOfficeのマクロってVBAとは別モンだっけ?

12 名無しさん@おーぷん 2016/07/05(火)15:20:21 ID:XBQ

>>9
使ったことないけど、やっぱり移行しやすいように似せてあるみたいね

「OpenOffice.org Basicは、基本的に文法がVBA (Visual Basic for Applications)と同じである。」
https://itref.fc2web.com/openoffice/basic/#vb

11 名無しさん@おーぷん 2016/07/05(火)15:19:47 ID:Xdc

>>8
ありがとう、これはこれで
勉強になる

13 TimeFires◆BFU2tXFOi7w3 2016/07/05(火)15:22:06 ID:9ls

>>11
if やら select caseは使っちゃダメなの?

14 名無しさん@おーぷん 2016/07/05(火)15:23:35 ID:Xdc

>>13
いいと思うん

15 名無しさん@おーぷん 2016/07/05(火)15:24:47 ID:XBQ

>>11
エクセルのセルの値の型がわからないのだけど、
javascriptでは 一旦文字列で式を作ってevalで実行してる。混乱しがちだと思うので注意
eval(c2+e3[0]+d2)

eval('2+3')に展開されている

17 TimeFires◆BFU2tXFOi7w3 2016/07/05(火)15:26:44 ID:9ls

>>15
へー、すげえ。そんなことできるんだ

18 名無しさん@おーぷん 2016/07/05(火)15:28:10 ID:MFP

>>15
VBAだと、式作ってセルに計算式として渡して計算させるってのは出来た筈。

16 名無しさん@おーぷん 2016/07/05(火)15:26:29 ID:MFP

演算方法の値で分岐させればよろし

22 名無しさん@おーぷん 2016/07/05(火)15:37:52 ID:XBQ

Exelつかったことないんだが
もしエラーメッセージまで実装するなら
TYPE
https://support.office.com/ja-jp/article/TYPE-%E9%A2%E6%B0-45b4e688-4bc3-48b3-a105-ffa892995899
で型が調べられるみたいだから、これ使って数値と文字列とそれ以外を場合分けすればいいかな
演算子はぜんぶ文字列になっちゃうから、個別に判定を

23 TimeFires◆BFU2tXFOi7w3 2016/07/05(火)15:39:29 ID:9ls

>>22
VBAにtry catchとかiferrorがあればevaluteをそれで挟めばいいかなと思った

26 名無しさん@おーぷん 2016/07/05(火)15:43:06 ID:XBQ

>>23
ぐぐったら残念なことにVBAに例外はないらしいです。
かわりにOn Errorステートメントというのをつかうしい
>>25
おお、よかった

24 名無しさん@おーぷん 2016/07/05(火)15:39:43 ID:p1t

https://i.imgur.com/hBcqVZ4.jpghBcqVZ4

27 TimeFires◆BFU2tXFOi7w3 2016/07/05(火)15:43:44 ID:9ls

>>24
ifelseのごり押しで草

31 名無しさん@おーぷん 2016/07/05(火)15:47:57 ID:p1t

>>27
すまんな、気の利いたコードが書けなくて

32 TimeFires◆BFU2tXFOi7w3 2016/07/05(火)15:53:57 ID:9ls

>>31
いやむしろその執念に感服するわ
elseif連続で使ってたらあたしは混乱する(´・ω・`)

35 名無しさん@おーぷん 2016/07/05(火)15:59:04 ID:p1t

>>32
多分、.NETならIf使わず全体をTryキャッチで囲んで
キャッチ節で例外のメッセージ表示して終わると思うTryは偉大

36 名無しさん@おーぷん 2016/07/05(火)16:02:25 ID:Xdc

>>35
あ……(´・ω・`)
あ、それとオプションボタンで +*-/を選択できるようにつーのも
書いてありやした……ので色々と
改良しやすん

37 名無しさん@おーぷん 2016/07/05(火)16:05:53 ID:p1t

>>36
がんばれー、あともうちょい

25 名無しさん@おーぷん 2016/07/05(火)15:42:36 ID:Xdc

あ、できそうです

38 名無しさん@おーぷん 2016/07/05(火)16:07:29 ID:XBQ

セルの値だと、どこかのタイミングで処理を実行させる必要がある
ボタンを押させるか、
セルが変更されたタイミングで処理を実行させるか、これだったら
Changeイベント
https://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_event.html#change
が使えると思う

39 名無しさん@おーぷん 2016/07/05(火)16:08:24 ID:Xdc

_:( _ ?ω`):_
https://i.imgur.com/Kvt743J.jpg

40 TimeFires◆BFU2tXFOi7w3 2016/07/05(火)16:09:32 ID:9ls

>>39
チェックボックスどうなってんだよ……

41 名無しさん@おーぷん 2016/07/05(火)16:10:32 ID:p1t

>>39
細いようだがE、F列は3行目じゃなかった?

42 名無しさん@おーぷん 2016/07/05(火)16:13:42 ID:Xdc

>>41
(´>∀<`)ゝ

44 名無しさん@おーぷん 2016/07/05(火)16:20:59 ID:p1t

おつかれちゃん!

46 名無しさん@おーぷん 2016/07/05(火)16:22:09 ID:Xdc

今度はc++の課題終わらせなきゃ!
では(・ω・)ノシ

47 TimeFires◆BFU2tXFOi7w3 2016/07/05(火)16:22:31 ID:9ls

乙ー
++にvbaとか大変だなー


プログラミングってなんなの?
「最も恐ろしいプログラミング言語」 5万人のプログラマが回答 1位はVisual Basic
面接官「Excel使えますか?」僕「VBAはもちろんCOMアドインの開発もできます!」
一年前俺「エクセルの表もろた」先輩「念のため電卓叩いとけ」

元スレ VBAを勉強してるんだけどできない。
https://hayabusa.open2ch.net/test/read.cgi/news4vip/1467697935/


★おすすめ記事
コメント

 コメント一覧 (19)

    • 1. 以下、VIPにかわりましてBIPがお送りします
    • 2016/07/07 19:12
    • コードきたね〜
    • 2. 以下、VIPにかわりましてBIPがお送りします
    • 2016/07/07 19:37
    • >>24だと小数点の無い整数いれたときにもエラーになるんじゃねえの
    • 3. 以下、VIPにかわりましてBIPがお送りします
    • 2016/07/07 19:38
    • なんだかおもしろそう。畑違いだけど勉強してみたい。
    • 4. 以下、VIPにかわりましてBIPがお送りします
    • 2016/07/07 19:53
    • C++とVBAを同時進行ってどんなカリキュラムでやってんだ?
    • 5. 以下、VIPにかわりましてBIPがお送りします
    • 2016/07/07 19:56
    • アドバンスできるやつじゃないの?
    • 6. 以下、VIPにかわりましてBIPがお送りします
    • 2016/07/07 19:58
    • 職場にもいるんだけど Dim a,b As doubleって aはバリアントになってね?わざと?
      てかVBAで苦戦してるのにC++なんてできるもんなのか。いまだによくわからんわ。
    • 7. 以下、VIPにかわりましてBIPがお送りします
    • 2016/07/07 20:23
    • 全体をとりあえずtry catchで囲めばいいってこれが無能プログラマなのか
      例外に頼るなよ
    • 8. 以下、VIPにかわりましてBIPがお送りします
    • 2016/07/07 20:26
    • まあ24でOKでしょ。
      入力チェックして、後は計算して出すだけ。

      しいていうなら、ifelseで符合チェックするんじゃなくて、打ち込んだ文字列をdoubleに変換してそのまま計算できないもんかね?
    • 9. 以下、VIPにかわりましてBIPがお送りします
    • 2016/07/07 20:26
    • ※6
      それは俺も思ったけど、
      バリアントにしとかないと文字列がセルに入ってる時点で
      エラーになるからいいんじゃないの
    • 10. 以下、VIPにかわりましてBIPがお送りします
    • 2016/07/07 20:54
    • 最初にIsNumericでセルの値判定または
      ワークシート関数のIsNumberしときゃエラーおきないだろ
      それでもOn Error GoToいれるけど。
      else ifが多いとselectcaseのほうが読みやすい場合があるが、
      ケースバイケースだな(なんちゃって
    • 11. 以下、VIPにかわりましてBIPがお送りします
    • 2016/07/07 21:21
    • レベル低すぎてなんだか泣ける
    • 12. 以下、VIPにかわりましてBIPがお送りします
    • 2016/07/07 21:54
    • あきらめなければ、そのうちわかるさ
    • 13. 以下、VIPにかわりましてBIPがお送りします
    • 2016/07/07 22:01
    • select文使おうや…
    • 14. 以下、VIPにかわりましてBIPがお送りします
    • 2016/07/07 23:46
    • VBAとC++は方向性が違うから別枠で勉強が必要=同時に勉強もありだよ
      厳密にはVBAはプログラムではなくあくまでExcelやWordの付随機能のひとつでしかないからな

      ちなみにプログラム業以外の一般的な職場ではVBAが一番役立ちC++は職場の環境やセキュリティで使えん
      なので仕事に役立たせたい理由で勉強するならVBAのほうが断然おすすめ
    • 15. 以下、VIPにかわりましてBIPがお送りします
    • 2016/07/08 00:26
    • なんだかんだでみんな親切で草
    • 16. 以下、VIPにかわりましてBIPがお送りします
    • 2016/07/08 00:36
    • コマンドラインで実行するツールを作っても仮にそれをGUIにしても
      「MS officeじゃないと(しか)わからん」って人がほとんどだから
      インターフェイスはExcelVBAで作ってる
      だからVBAで知ってるのはボタンやファイルセレクトくらい
    • 17. 以下、VIPにかわりましてBIPがお送りします
    • 2016/07/08 01:41
    • 入力された演算子をそのまま計算式には使えないの?やっぱセレクトなりifなりで判定させないとダメ?
    • 18. 以下、VIPにかわりましてBIPがお送りします
    • 2016/07/08 01:43
    • 意外と、VBAがっつり(プラスコミュ力)で年収500は固かったりする。
    • 19. 以下、VIPにかわりましてBIPがお送りします
    • 2016/07/08 23:26
    • 今の中学でもVBAやhtmlやってんの?
コメントフォーム
記事の評価
  • リセット
  • リセット

※スパム対策のため「http」を禁止ワードにしています。URLの書き込みは「ttp://~」でお願いします。
記事検索
カテゴリ別アーカイブ
月別アーカイブ
おすすめサイト記事