1 :
名無しさん@そうだ選挙にいこう :
2010/04/06(火) 17:23:46 ▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★1 質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★2 要望は具体例や図を使って明確かつ具体的に。
★3 質問前に
>>2-20 あたりの注意書きやQ&Aを必ず読むこと。
★4 質問テンプレ(雛形)は必須じゃないけど、
OSやExcelのバージョン、VBAの可否など(下記テンプレ1〜4の情報)は必須情報。
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類 .】 Windows**
【2 Excelのバージョン 】 Excel**
【3 VBAが使えるか .】 はい・いいえ
【4 VBAでの回答の可否】 可・否
【5 検索キーワード 】 Googleやヘルプでの検索キーワード
※【4】は、VBAはわからないけどコード書いてくれるならVBAでもいいって場合は「可」
VBAを使うのは避けたいって場合は「否」にしましょう。丸投げする場合は、必要に応じてブックをアップすること。
※【5】は、あなたがGoogleやヘルプで検索した際に使ったキーワードを書いてください。
まだ検索してないなら、質問の前にGoogleやヘルプで検索してみてください。
ttp://www.google.co.jp/ 前スレ
Excel総合相談所 90
http://pc11.2ch.net/test/read.cgi/bsoft/1266119722/
2 :
複乳 :2010/04/06(火) 17:46:22
>>994 マクロの記録、と前言わなかったっけ
やり方はテキトーにぐぐれ
後はVBAスレがあるからそっちへ行け
ttp://pc12.2ch.net/test/read.cgi/tech/1262748898/ 本が欲しいなら何でもいいから一冊買えばいい
「初心者」または「入門」と名が付く奴で一番安いヤツかっとけ
バージョンは不問
あとはいきなり命令を記述できるわけではなく
プログラムの大まかな流れを知らないとプログラムは記述できない
VBはVBというソフト、VBAはエクセル等についてくるVB劣化版。
VBAはVBAと言った方がいい。VBの回答だとVBAに対応していない場合がある
>>997 送ったっけ?
>>2 世の中には掲示板とメールの区別がついてなくて、
「掲示板で教える」ことを「メールで送る」って言う人がいるんだよ。
jl
5 :
複乳 :2010/04/06(火) 19:45:18
そうなんですか、勉強になります・・
>>3 > 「掲示板で教える」ことを「メールで送る」って言う人がいるんだよ。
そんなやつ初めて聞いたぞwwwww
>>6 ここは総合だから、VBAはまずここで(´・ω・`)
>>7 誰にでも初めてってのはあるもんだ。
カカクコムの口コミとか教えてgooとか見てるといっぱいいるぞ。
10 :
名無しさん@そうだ選挙にいこう :2010/04/07(水) 12:15:23
>あとはいきなり命令を記述できるわけではなく >プログラムの大まかな流れを知らないとプログラムは記述できない そのあたりはだいたい解っています 123のマクロなら嫌になるほど書いていますから VBAの言語のマニュアルが欲しいだけなのです それが無ければ始まらないしそれがあれば後はどうにでもなるでしょうから ところがこれが無い 市販の本などというのは著者が教えたいことは書いてあってもこちらが知りたいことは書いてないもので不便極まりないです Excelに入っているVBAを作ったのはマイクロソフトですからそこのマニュアルが有ってしかすべきなのにおかしいことです マイクロソフトは自分の所ではマニュアルは販売していないと言い張って聞きません それではExcelを買えばその中にヘルプという形で当然マニュアルが有るだろうと思っていたのですがこれが無い 私にはこんなことは異常に見えますが皆さん納得しているんですか? いずれにせよお世話になりましたVBAスレに行くことにします
>>10 ヘルプにはVBAの事も当然入ってる。とても読みにくいけどね。
12 :
名無しさん@そうだ選挙にいこう :2010/04/07(水) 13:40:42
>>11 見にくくてもいいのです
有りさえすれば
ところが無いのです
今までの状況は、
1 エクセル2002のシート全体のセルの背景色と文字の色を変えたい
2 しかしそれは2003以降で出来ることで2002では出来ない
3 ただしVBAマクロを使えば2002でも出来る
とここまで教わってからVBAの言語マニュアルを手に入れるためOfficeXP2002を手に入れてみましたがそのVBAエディターのヘルプに「Worksheet_SelectionChange」やそれらしい言葉を入れても何も出てこないのです
マイクロソフトにマニュアルが別売で有れば買うからと聞いても無いという返事
じゃあどうすれば手に入るのかと聞いてもそういことは教えられないというあきれた返事しか帰って来ません
困ってしまっています
「Worksheet_SelectionChange」の説明がエクセルのVBAエディターのヘルプに本当に有るのですか?
Worksheet(_)SelectionChangeじゃなくて Worksheet(.←ドット)SelectionChangeでも出てこない? あるいは SelectionChange だけで調べてみた?
15 :
名無しさん@そうだ選挙にいこう :2010/04/07(水) 15:26:14
「SelectionChange」で出てきました! ありがとうございます しかし肝心のシート全体の背景の色を変えるというようなことがこれで出来るのでしょうか 出てくるのは下記のみです ------------------------- SelectionChange イベント 関連項目 対象 使用例 アプリケーション情報 ワークシートで選択範囲を変更したときに発生します。 Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) Target 新しい選択範囲を指定します。 使用例 次の使用例は、選択範囲がウィンドウの左上隅になるまで、ブックのウィンドウをスクロールします。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) With ActiveWindow .ScrollRow = Target.Row .ScrollColumn = Target.Column End With End Sub -------------------------
16 :
名無しさん@そうだ選挙にいこう :2010/04/07(水) 15:29:21
17 :
名無しさん@そうだ選挙にいこう :2010/04/07(水) 16:07:10
XPでexcel2003を使用している者です。 最新の"2007 microsoft office system 互換機能パック"を導入済みです。 お客様がexcel2007を導入しまして、2007で編集されたファイルを頂き、 自分の環境(2003)で開こうとしますと、 "セルの書式が多すぎるため、書式を追加できません"と表示され、深刻なダメージを受けて まともに開くことができません。 お客様の手を煩わせる事なく、これを回避する方法はありますでしょうか? 2003でブックの書式数に制限があることは知っているため、原因そのものはわかります。、 最終手段は2007を導入することだと思いますが、それ以外に解決法があればそれを試したいです。 宜しくお願いします。m(_ _)m
>>17 OOoを入れてみるという手もあるが、ちゃんと開ける保証はない。
一番確実なのは、やっぱり2007を入れることだろう。
マイクロソフトのホームページから体験版が無料で落とせるので、使いたいのが今だけなら
そちらをおすすめする。
この先もずっとそのお客さんと付き合っていくなら素直に購入。
19 :
複乳 :2010/04/07(水) 17:07:44
>>17 オフィス ビューワー
でぐぐれば開くためのソフトが色々見つかりますが・・
そんなに複雑怪奇なシートだと2007で試すのが良さそう
20 :
17 :2010/04/07(水) 17:43:12
>>18-19 さん
OOoを試してみましたところ、無事に開くことができました!
今後編集してお客様とやり取りする機会があることを想定しますと、
最終的には2007導入という結論にはなると思いますが
現在はとりあえず参照できれば充分ですので自分的には解決です。
親切に回答して頂き、ありがとうございました。
そう言えば OOo3.x系のCalcとExcelではマクロ使ってないなら互換性は完璧といって良いレベルだったな。 WriterとWordだったらやばい事になってたぞw
22 :
名無しさん@そうだ選挙にいこう :2010/04/08(木) 00:37:58
>15 得意なロータス123で 利用者がセルの背景色や文字のフォントをいじった。 けどそれを、背景赤で文字青に無理矢理変更する。 この処理のコードは書ける? 書いてみてよ。 ロータス製品からMSへの移行はパッケージソフトにもなってるぐらい単純だよ ロータスやめてMSに切り替える企業の移行作業は8割ぐらいは元ロータスの技術者。 MS->ロータスは難しくてもロータス->-MSは簡単なはずだよ
>>22 そろそろVBAスレでやってほしいんで放置でお願いします
24 :
名無しさん@そうだ選挙にいこう :2010/04/08(木) 09:30:05
>>22 なに絡んでいるんだ? このバカは
>この処理のコードは書ける?
おまえに対してそれをしてみる必要性がどこに有るというんだ?
説明できるか? このバカ
25 :
名無しさん@そうだ選挙にいこう :2010/04/08(木) 09:31:04
>>23 放置したいならお前も無駄レス付けないで黙っていろ
このバカ
>>15 イベントってのはマクロをスタートする方法のこと
そのマクロはなんでもいい
色を変えるマクロは自分で作るんだよ
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 エクセル メール アドオン 送信 添付 アウトルック以外 becky …など エクセルやワードで編集中のシートやブックを直接メール送信する機能がありますよね これと同じ様な事をアウトルックエキスプレスを使わないで出来る設定やアドオンなどは ありませんでしょうか? 具体的にはbeckyを使っており、ボタン一発でブックを仮保存して自動的にメーラーに送るみたいな 機能があれば十分です。
28 :
名無しさん@そうだ選挙にいこう :2010/04/08(木) 14:12:59
>>26 >イベントってのはマクロをスタートする方法のこと
わかりました、ありがとうございました
>色を変えるマクロは自分で作るんだよ
わかりました
それでそのマクロ命令はいったいどういうものなのですか?
私の質問は元々それだった訳ですが
ワークシート全体の背景色をセル単独(またはその集合)の背景色の変更としてではなく変えるマクロとはいったいどういうものなのでしょうか
29 :
名無しさん@そうだ選挙にいこう :2010/04/08(木) 14:14:44
>>26 このスレが適当でなければVBAの質問スレで続きをお願いします
30 :
名無しさん@そうだ選挙にいこう :2010/04/08(木) 17:51:37
excelシートに行を365個、列をだいたいの平均寿命の80個、罫線で表をつくり、 ctrlキーとマウスホイールで表を縮小すると、 驚くことに、1個1個のセルがはっきり見えるんです。 つまり人間が生きていくうえで、1日も無駄にはできない、そう思うようになりました。
>>30 1時間=1ドットとすると、80年はだいたい1024x768ドット
33 :
複乳 :2010/04/08(木) 20:44:09
>>30 試しに一つのセルを黄色で塗りつぶしてみた
これだけだとほとんどわからないぐらいの変化だが、
一行あればクッキリと見え、数行染めればはっきりと全体が変わる
成長ってこういう日々の積み重ねなんだな、と思いました。
34 :
名無しさん@そうだ選挙にいこう :2010/04/08(木) 20:47:28
100年分の1枚カレンダーを見て同じ事を思った
35 :
名無しさん@そうだ選挙にいこう :2010/04/08(木) 20:59:29
【1 OSの種類 .】 Windows vista 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 マクロシート 参照 久しぶりに 図形にマクロの登録をしようとしているのですが、次のようなのは初めてです。 「マクロシートに対する参照を指定してください」との指示が出てくるのですか 意味がわからなく、どう対処したらいいのか教えてください。
36 :
複乳 :2010/04/08(木) 21:21:18
>>35 基本、エラーはエラーメッセージを一文字も変えずに検索
37 :
35 :2010/04/08(木) 22:10:00
何となくですが、 「マクロシートに対する参照を指定してください」との指示はexcel4.0マクロの 関係のようです。 excel4.0マクロがexcel2007から復活しているけれど、excel2003でvista機で出て くるのは想定外でした。 結局、 「モジュール名 半角スペース マクロ名」で登録するとうまく行きました。 xp機のときは、マクロ名だけでマクロの認識をしていたものが、vista機では モジュール名まで要求するとの結論になりました。 もっと早くこれがわかっていたら、・・・ 全自動化したxp機でのマクロがvista機では試行錯誤してもうまく行かず半自動化 に変えて乗り切った???原因がわかったようです orz orz 試行 + 思考 では。
38 :
名無しさん@そうだ選挙にいこう :2010/04/08(木) 22:57:40
>>34 そんなカレンダーどこに売ってるんですか?
39 :
名無しさん@そうだ選挙にいこう :2010/04/08(木) 23:21:52
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━ 【1 OSの種類 .】 WindowsXP SP3 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 日付 シリアル 並び替え 定義 お願いいたします。 日付の入力に関してなのですが、A列にH20/1(H20.1) という形で、 各行を入力して、それをシリアル値に変換して並び替えに使いたいのですが、 可能でしょうか? H20/1/1(H20.1.1)まで入力するとシリアル値として反応してくれるのですが、 H20/1(H20.1)でH20/1/1として認識してシリアル値を取得する方法がありましたら ご教授ください。S63/1等、年数・月数の入力でシリアル値を取り出せますでしょうか? 日の指定は特にないです。 (ユーザ定義でH20/1/1と入力してH20/1としての表示はできたのですが、 入力の際にH20/1として入力するとシリアル値として反応してくれませんでした)
>>39 書式でなんとかするのは無理っぽいんで、文字列から数式で年と日を取り出してシリアル値に変換するしかないね
>>40 ありがとうございます。。
別の列でA列に/1を追加して、そこからシリアル値を取り出せました。
42 :
名無しさん@そうだ選挙にいこう :2010/04/09(金) 00:17:49
「100年分の1枚カレンダー」って詳しく教えていただけんだろうか?
43 :
名無しさん@そうだ選挙にいこう :2010/04/09(金) 00:23:26
44 :
名無しさん@そうだ選挙にいこう :2010/04/09(金) 00:28:31
100年カレンダーが買えないから自分でExcelで作りたいのですが、 どうやってつくりますか? だれか作ってUPしてくれますか? 自分的に必要な機能は、 ・A4の1枚であること。 ・最初の年(例えば1988年)を指定すると、その年の1988年1月1日から2088年12月31日までが自動でセルに入力されること。 ・その入力される数字形式は、ちっちゃくなっても見やすくするため1つのセルに日だけ(月の最初の1日だけは4/1みたいにする。年の初めはどこかに西暦年号を入れる)。
45 :
44 :2010/04/09(金) 00:29:18
複乳さん、いつも見てます。尊敬しています。こんなのチョチョイノチョイ(死語)でしょ?作ってくれませんか?あるいは、どなたか・・・。
46 :
複乳 :2010/04/09(金) 00:38:02
>>44 別に作るのはいいんだけど、いまいち出力形態が分からない
1行目に1988ねん1/1-12/31
にぎょうめに1989ねん1/1-
なのか
それで日付だけなのか、付きもつけるのか、なんなのか。サンプルでもあればいいんだけど
47 :
複乳 :2010/04/09(金) 00:40:34
あとA4の一枚ってのが曖昧すぎてねー
>>30 みたいにフォントサイズを1にしたり縮小倍率を1%に設定したりすれば、
1ドットだけどこれは8を表してる、とか言えるわけだし
48 :
44 :2010/04/09(金) 00:41:57
しかしこれぐらいはスキルを身につけて自分でつくれるようになりたいな。 みんなどうやってつくる? 自分が思いつくのはこれくらい ・A1を入力用「年代」セルとする。つまりここを変更するだけで、その人用の人生カレンダーが一瞬でできる。 ・B2がスタート。つまり1988年1月1日。そして右側にこの年の365日分の日を。 ・下にいくにつれて年を1つ増やす。 ・条件付書式で、土日は文字に色を塗る。 と思ったけど、さっそく問題が出た。Excelは列が255までなので、1年分の365が入りきらない。
49 :
複乳 :2010/04/09(金) 00:45:36
>>48 一つ目はinputboxにするつもりだったな
二つ目は気づかなかった・・
書式設定で縦書きにしてA366を1/1、a365を1/2・・かな・・
それで列が右に行くごとに一年・・・
やりたくないなぁ。
50 :
44 :2010/04/09(金) 00:46:06
>>46-47 こんにちは。
それはおまかせしますよ。
作者のかたがつくりやすい方法で。
本当はすべてのセルに 4/9 のように月も日もつけたいけど、ちっちゃいセルになることが予想されるので、1日以外は日だけがいいような気がします。
もしA4の1枚がちっちゃすぎれば、しかたなく4枚で印刷してセロテープでくっつけで、全体として100年分になってる、というような印刷のしかたになるかな。
51 :
名無しさん@そうだ選挙にいこう :2010/04/09(金) 01:01:25
とりあえず、列を1〜約180(半年分)、行を1〜200(100年分)にして、A4の横で印刷すれば、 1つのセルが少しだけ横に細長い、いい感じの見やすい長方形になることがわかった。
52 :
複乳 :2010/04/09(金) 01:22:54
53 :
名無しさん@そうだ選挙にいこう :2010/04/09(金) 01:54:57
>>52 おっと、早い。ありがとうございます。
でもさっそくバグらしいものが・・・・
別の年代を指定すると、月の最初が「7/1」のはずが、「1」「7/2」となることがあります。
これはなおりますか?
54 :
複乳 :2010/04/09(金) 02:03:39
別の年代って何年? あとMacro1 Macro2は無視してくれ。消してもいい sheet1.sexってマクロだけだな。使う気でイタの
55 :
名無しさん@そうだ選挙にいこう :2010/04/09(金) 16:29:38
>>29 です
VBAの質問スレの方でも返事は頂けなかったようですがそれは当然のことでした
なぜならVBAなら出来るという解決方法など最初から無かったからです
実はサンプルに手に入れたExcelの2002でしてみると2003以降と同じようにシート全体を選択しセルの色や文字の色を手動で変えれば固定できました
もちろんエクセルでの手動と同じ事をVBAですれば出来るという事にはなりますが2002では手動では出来ないという前提でしたからVBAでのみ出来る方法が有るということになります
ゆえにそのVBAでのみ出来るという解決方法を今までさんざん苦労をして探していましたが結局は有りませんでした
有りもしないものを有ると思い込んで言っていた複乳氏の無知な知ったかぶりに振り回された数日だったようです
56 :
複乳 :2010/04/09(金) 16:40:08
ワロタ
i7爆速まで読んだ
58 :
名無しさん@そうだ選挙にいこう :2010/04/09(金) 17:14:48
>>56 >>55 だが
ショボイ知識しか無いくせに回答者面してんじゃねえぞ
お前は僅かなチップ欲しさに知りもしない道を教えるローマの浮浪者か
根性がさもしすぎるな
59 :
名無しさん@そうだ選挙にいこう :2010/04/09(金) 17:25:47
だいたいExcel本体には無い動きをさせるVBAコマンドが有ると思えるお前の頭はおかしい こちらは有るというから有るんだろうと思っていたが買いかぶりだった バカが知ったかぶりをしていたというのはいかにもネットならではの落ちだったな
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 F列にあるデータのうち、"-"を含まないものがあったらE列とF列を マクロで削除(上方向へシフト)するには、どう書けばいいでしょうか? If文がダメっぽいです・・ F = Range("F65536").End(xlUp).Row For i = 4 To F If Cells(i, 6) = "<>*-*" Then Range(Cells(i, 5), Cells(i, 6)).Delete Shift:=xlUp End If Next A-123 A123 AB-12 ABC-1 というデータがあれば、A123が削除の対象となります。
【1 OSの種類 .】 Windows vista 【2 Excelのバージョン 】 Excel 2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 Excel VBA ファイル名 質問です フォルダーをファイルを開く時に使う様なウィンドウで指定して そのフォルダーに入っているファイル名を絶対パス付きで リストアップするにはどうしたらよいでしょうか? ファイル名だけや最初に自分でフォルダーのアドレスを 手入力するタイプのものしか見当たりませんでした。 宜しくお願いします。
>>61 まだあるかもしれないけど 好きな方を
1) If Not (Cells(i, 6).Value Like "*-*") Then
2) If InStr(Cells(i, 6).Value, "-") = 0 Then
65 :
61 :2010/04/09(金) 22:28:33
>>63 ありがdございます。
どちらもうまくいきましたが、上段の方を覚えます。
>>64 ありがとうございます。
なんとかやってみます。
>>55 お前釣りだろ?
数式バーの色を変えてほくそ笑んでいたやつじゃない?
69 :
名無しさん@そうだ選挙にいこう :2010/04/10(土) 00:49:03
質問です。よろしくお願いします。 winXP。エクセル2007. 例えば、、、同じbook内、1〜20のシートがあり、おのおの A1 に数字がランダムに入力されている。 シート21にてcount関数を使い、シート1〜20のA1の数字が1以上のものをカウントします。 このとき、カウントされたシートがどれなのか?を知りたいのです。 何かよい方法はないでしょうか? 知っているかたいましたら教えてください。お願いします。
>>68 削除すべきデータが少なくてたまたま連続した部分がなければうまくいってしまう
>>61 正しくは2行目を
For i = F To 4 Step -1
としなきゃいけない
71 :
複乳 :2010/04/10(土) 00:53:18
>>69 bこう・・どこかで見た気がする構文だ・・
>>69 IF関数を20個並べる
質問が大雑把すぎるので回答も大雑把にしかできん
CONVERT関数で時速を分速にしようとした時、 分速はどういうふうに表したらいいの? m/mn m/min ではうまく動きませんでした。
>>73 それCONVERT関数必要ないだろ
60で割るだけだぞ
75 :
73 :2010/04/10(土) 06:15:27
まぁ 関数の勉強に付き合ってよ 60で割るだけだとkm/minだけどね 1000かけないと
答えとしては =CONVERT(CONVERT(A1,"km","m"),"mn","hr") だけど =A1*1000/60 のが早いだろ
【OS】 Windows** 【Ver】Excel2007 【VBA】はい 【VBAでの回答の可否】可 初心者の私に、VBAを教えて下さい。 例えば、SHEET1に、メインの表があって、SHEET2以降が データー表。最後尾のシートは最新の情報で、 マクロを実行させたら、常に最後尾の情報を更新させる というのを作ってて、 (´・ω・`)??? な状態です。 シート数をカウントした変数(例えばX)をsheets(x)にしたら 常に最後尾のシートをアクティブにさせるのは判ったの ですが、そこで止まってます。 更新させるシートが決まっていたら判るのですが、常に最後尾 って所で困っています。 ご教授をお願いします。
78 :
複乳 :2010/04/10(土) 09:44:11
>>77 コードは標準モジュールに書く
sheet1のボタンから始めたいなら
sheet1に
Private Sub CommandButton1_Click()
call k
End Sub
標準モジュールに
sub k()
End Sub
とする
【OS】 WindowsXP 【Ver】Excel2007 【VBA】いいえ 【VBAでの回答の可否】可 あるデータにプラスとマイナスの数字が混ざっています。 プラスかマイナスの数字だけをセルで選択?するにはどうすればいいのでしょうか? 色をつけたり抽出したいんですが、色々試してみましたが分かりませんでした。 以上ですが宜しくお願いします。
80 :
名無しさん@そうだ選挙にいこう :2010/04/10(土) 10:16:08
>>78 スミマセン、全然言葉足らずでした。
SHEET1にマクロのボタンを設置して、ボタンを押したら
最後尾のシートの情報を、シート1に更新させると
いうマクロです。スミマセン(´・ω・`)
改めて…
【OS】 Windows**
【Ver】Excel2007
【VBA】はい
【VBAでの回答の可否】可
「一回動作を記憶させて、それを変数をいれた
シート名にすりゃ簡単」っと、思っていた時期がありました。
雰囲気的には、SHEET1の情報を最後尾シートでfind検索かけて
OFFSETでその情報をSHEE1に反映させるって感じです。
82 :
79 :2010/04/10(土) 10:36:23
>>80 回答ありがとうございます。
シ−トのセルををそのまま残して虫食いみたいにしたいんです。
もう少し詳しく説明していただけるとありがたいんですが・・・。
ずうずうしくて申し訳ないです。
>>82 色つけなら条件付き書式の方がいいだろう。
抽出はデータの詳細設定。
>>81 最後尾のシートって事なら
Set s = Worksheets(Worksheets.Count)
でいいんじゃないかな
(非表示のシートを含んだ最後尾のシートって事になるけど)
んで(使い方の例ね)
Worksheets("Sheet1").Range("A1").Value = s.Range("A1").Value
とかやるとか
>>83 なるほど、分かりました。
ありがとうございました。
86 :
名無しさん@そうだ選挙にいこう :2010/04/10(土) 13:23:11
>>81 Sheet1のCommandButton1クリック時イベントに
Private Sub CommandButton1_Click()
Call a
End Sub
標準モジュールに
Sub a()
Dim WS As Worksheet
Set WS = Worksheets(Worksheets.Count)
Worksheets("sheet1").Cells(1, 1).Value = WS.Cells(1, 1).Value
Set WS = Nothing
End Sub
2007のリボンメニューを2003のメニュー式に変更出来ないでしょうか?
88 :
複乳 :2010/04/10(土) 17:48:47
2003 メニュー アドイン でぐぐれ
Excel2000、OSはXPか2000です。 ハイパーリンクを挿入すると、リンクをシングルクリックするとブラウザが立ちあがります。 これを、シングルクリックではブラウザを起動しないようにして、 ダブルクリックでブラウザを起動させるようにするには、どうすればいいでしょうか?
>>89 ハイパーリンクの動作を買えることはできないので、
書き込み失敗↑
>>89 ハイパーリンクを使わずにVBAのWorksheet_BeforeDoubleClickイベントで処理する
あぼーん
エクセル2003か2007で見栄えのいいグラフを作るコツとかが 詳しく載ってる本があったら教えてください。
N列 O列 P列 AE列 2 4月 5月 6月 2010年5月 3 4 5 6 700 500 7 N2セルに「2010/4/1」、O2セルに「2010/5/1」と入力し、ユーザー定義で 「4月」、「5月」と表示させています。 AE2セルには「2010/5/1」を書いて「2010年5月」と表示させ、7行目に 次の式を入れました。 N7セル =IF(AE2<N2,N6,IF(AE2=N2,N6,0)) O7セル =IF(AE2<O2,O6,IF(AE2=O2,SUM(N6:O6),0))。 このとき、N2はAE2に対して過去なので0、O2は同じなのでN6から O6までの累計を7行目に表示させます。 と、ここまでは良かったですが、AE2セルに「2010/5/5」と入れると 表示は「2010年5月」になるものの、O7が0になってしまいます。 そこで、「2010/5/15」と入れても「2010/5/1」となるような関数がありますか?
95 :
名無しさん@そうだ選挙にいこう :2010/04/11(日) 04:12:12
作ればある
>>94 A1セルに入った年月日の「日」を強制的に1にするには、=DATE(YEAR(A1),MONTH(A1),1)
つまり
=IF(AE2<N2 以下略
の部分を
=IF(DATE(YEAR(AE2),MONTH(AE2),1)<DATE(YEAR(N2),MONTH(N2),1) 以下略
のように置き換えればいい
他の式もすべて同様にIFの部分を直せばいいが、式がどんどん長くなってしまうので、
修正した日付かIFの判定結果だけをを空いたセルに入れておくといい
※アドインを入れてもいいのなら =EOMONTH(A1,-1)+1 という式でも月頭のシリアル値を求めることができる
少し数式が短くなる
97 :
複乳 :2010/04/11(日) 09:13:51
98 :
名無しさん@そうだ選挙にいこう :2010/04/11(日) 10:20:41
99 :
複乳 :2010/04/11(日) 10:50:14
>>98 では代わりにお答え下さい><;
この手の質問は誰も答えられないんだよなぁ
見栄えの良いグラフとかになってくると「センス」の問題w
101 :
単乳 :2010/04/11(日) 11:20:37
まあ、ケンカはやめようじゃないかw
>>86 遅くなりましたが、判りやすい回答ありがとうございました。
そういえば…最後のSET の NOTHING って試作のときに
入れてなかったです(^_^;
まだまだ勉強しなきゃ駄目ですね… ありがとうございます。
あと、もう少しやりたい事がありますが、頑張ってみて
どうしても駄目だったらまた質問させてもらいます。
あぼーん
54:30 と入力して、54分30秒と表示させることって無理ですかな? Excel2007です><
105 :
複乳 :2010/04/11(日) 17:30:44
>>104 時間計算に使うとおかしくなるから計算には使わないでね
ユーザー書式で
[h]"分"m"秒"
計算でも使えるようにするなら
A1に時刻
B1=TIME(0,DAY(A1)*24+HOUR(A1),MINUTE(A1))
B1の書式を
[m]:ss
>>105 レスありがとです
時間を扱うときは最初からTIME関数を使ったほうが安全で早そうですね!><
ありがとござました!
108 :
複乳 :2010/04/11(日) 18:07:54
>>107 gyaaaaaaaaaasoudesita
109 :
質問 :2010/04/11(日) 20:27:34
2007を使っています。 色文字についてですが、 ある一定の数字を越えた整数を記入すると赤くなるとかできますか? (例えば100と設定し101から赤文字になるとか) 分かりにくい文章ですみません
110 :
名無しさん@そうだ選挙にいこう :2010/04/11(日) 20:28:50
>>109 色を付けたい範囲を選択して右クリック、「セルの書式設定」の「ユーザー定義」で
[赤][>100]0;0
と入れる
112 :
94 :2010/04/11(日) 22:04:10
>>96 どうもありがとうございます。
思ってたより大変なのが分りました。
IFが長くて頭が痛くなりそうなので、
AE2に「=DATE(YEAR(AE4),MONTH(AE4),1)」と入れ、
AE4に年月日を入れることにしました。
113 :
名無しさん@そうだ選挙にいこう :2010/04/11(日) 22:06:47
条件付き書式を設定しているセルがどれだか分からなくなりました。 こういうことは頻繁にあり、そのつど困っているのですがなにかいい方法があったりしますか?
114 :
名無しさん@そうだ選挙にいこう :2010/04/11(日) 22:11:48
>>113 CTRL+Gでセル選択をクリック、「条件付き書式」をチェックしてOKでいけるよ〜
116 :
113 :2010/04/11(日) 23:20:37
>>114 Oh, thank you very much.
I'm awed by such a magnificent, handy function equipped with Excel.
「このブックには更新できないリンクが1つ以上含まれています」とメッセージが出たとき、 どこのセルが他のブックを参照してるのか探すにはどうすればいいですか?
あいまいで申し訳ないのですが、ググるためのキーワードを教えてください たとえば全体で1万件データがあって、今2000件(20パーセント)処理してますよ! というのがわかるような、バー(?)をユーザーフォーム上に表示させたいのです。 ソフトをインストールするときに出てくるようなものです。 (1)このバー(?)の名前を教えてください (2)これを(標準の関数があるとして)使わずに、自分の書いた絵で表現することも 可能でしょうか? (たとえばハチマキしたウサギがゴールに向かっていくような絵) Excel2003です。
>>119 1)プログレスバー
2)Yes. VBA or ...
121 :
119 :2010/04/12(月) 10:31:08
>>120 ありがとうございました。
プログレスバーって初めて聞いた言葉でした!
これで前に進めそうです。
122 :
117 :2010/04/12(月) 19:43:30
>>118 リンクを解除したいのではなく、どこのセルが他のブックを参照してるのか
そのセルを知りたいんです。
123 :
複乳 :2010/04/12(月) 19:48:27
>>122 "["って記号を検索
数式にこれが入ってれば他のブックを検索してるはずだからね
124 :
名無しさん@そうだ選挙にいこう :2010/04/12(月) 19:54:14
おい、復乳! 参考になったぞ!
125 :
117 :2010/04/12(月) 22:26:25
釣れますか?
128 :
126 :2010/04/13(火) 00:03:19
すいません、とても初歩的な質問だから釣りに見えるのでしょうか。 本当に困ってます。助けて下さい。
''568'くらいなんで考え付かないの? 馬鹿なの?
あるいは表示形式が@で'568'とかね
131 :
複乳 :2010/04/13(火) 00:16:28
>>131 この場合の「釣り」ってのは、あまりにも簡単すぎて人に聞くまでもないことを
わざわざ質問して、スレの流れを妨げたり回答者をバカにすること。
でも、本当に初心者で記号の正確な意味や用法を知らない場合も多い。
他人を疑ってばかりいる賢い人間と、バカでも誰にでも親切な人と、どっちがいいだろうね。
133 :
126 :2010/04/13(火) 00:44:49
みなさん、ありがとうございました! ''568'で無事に表示されました。 お騒がせしてすみませんでした。
まぁ、春です。 新社会人が新しい職場で奮闘しているものと思って温かく見守ってあげましょう。
135 :
複乳 :2010/04/13(火) 11:25:19
>>132 ありがとうございます。このタイプの釣り、少ない気はするんだけどなぁ
136 :
複乳 :2010/04/13(火) 11:26:51
あー、言い忘れてたな そもそも'や"で囲む事自体やめたほうがいいよ、と EXCELは元々それを省くような挙動だから、別の手を考えたほうがいい
137 :
名無しさん@そうだ選挙にいこう :2010/04/13(火) 12:21:45
' のことで質問です セルでは先頭の ' は表示はされないけど上の欄ではちゃんと入力されてる なんでこんな変なの? こんなのが他のソフトでインポートとかしたときにバグとなってでてくる 極論すると例えば宇宙飛行ロケットのプログラミングならこういうのが設計ミスでロケット爆発の原因にもなりかねん なぜシンプルに ' をそのまま表示させないんだ? ' の先頭が表示されないようになっている理由とそのれ経緯について教えてくれないか?
138 :
名無しさん@そうだ選挙にいこう :2010/04/13(火) 13:36:55
Excel2003なら「読み上げ」ツールバーで数字を英語で読み上げてくれる機能があることはみなさん周知してますね。 私はこれで英語の数字のリスニング力を鍛えようと思ってます。 =int(RAND()*1000)+1 で1から1000までの乱数を出しておき、「読み上げ」ツールバーのボタンを押すだけで、書き出してたすべての数字を読み上げてくれる便利な機能です。 そこで質問。 「1つのセルの読み上げを聞いたあと、すばやく自分でのその数字を入力」 ← これを繰り返しやる方法はありませんか? なぜなら、ユーザが入力の操作をした時点で読み上げが終了してしまうんです(つまり読み上げ機能は全セルを読み上げるが、なにか作業すると終了してしまう)。
>>137 ' の記号を使うのはLotus1-2-3から引き継いだ機能。
セルの内容を文字列として左寄せする、という指示をソフトに与えるための記号で「接頭辞」と呼ばれる。
知らずに予想外の動作をしたとしても、それは単なる勉強不足。
140 :
複乳 :2010/04/13(火) 13:53:38
>>137 マイクロソフトのアホが設計した仕様。経緯なんて知らんし
知ってもどうにもならん
>>138 そんな機能は知らんが、メモ帳でも開いて横で入力作業するのはどう?
それでも止まるのかな
後はVBAで出来るかもしれんがあまり自信が無い
>>138 「Enterキーを押した時に読み上げる」というオプションがあるので、それを使えばうまくできるかも
よろしくお願いします。 他ブックにデーターを1行づつコピーするときなんですが 30列のうち5列だけは「形式を指定して」する必要があり1列はコピー不要。 この場合、行を一括でコピーした後、5列分だけセルのコピーをやり直し1列は削除するのと 最初からセル単位で29回コピーするのでは、どちらが正しい(早い)やり方なんでしょうか。
143 :
142 :2010/04/13(火) 14:05:35
すいません、書き忘れました 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 処理速度 ベンチマーク など VBAで大量データを扱う場合についての質問です。
>>143 経験則と想像で書くけど、全体をまとめてコピーしたあと、
あらためてコピー先で不要データの削除や書式の解除をした方が早いと思う。
そういうベンチマークは見たことがないので、厳密な結果が欲しいんなら
自分で実験するしかないと思う。
>>144 さん ありがとうございます。
行コピーは機械語になるときセルのコピーの繰り返しと一緒なのでは?などと
頓珍漢な妄想をあれこれ膨らませ、手が止まってました。
一括コピーして修正という方法でいこうと思います。
146 :
名無しさん@そうだ選挙にいこう :2010/04/13(火) 18:01:27
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 7いいえ 【4 VBAでの回答の可否】 可7 【5 検索キーワード 】 エクセル 関数 文字 行 検索 質問です 関数で文字を検索してその文字があったら、その文字が入っているセルの行番号を取得したいのですが やり方がわかりません 例えば 検索文字→リンゴ の場合A10にリンゴという文字が入っていると、行番号10を返してくれる よろしくお願いいたします。
>>146 探したい場所がA列なら
=MATCH("りんご",A:A,0)
【1 OSの種類 .】 Windows xp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 EXACTを使ったのですが、式をそのまま表示されてしまいます。。 他の関数は問題なかったのですが、何か別設定が必要なのでしょうか? よろしくお願い致します。
>>148 セルの書式設定が文字列になってないですか?
その場合は標準にしてみてください。
>>149 標準になってました、ありがとうございます。
なんでだろう、、
151 :
名無しさん@そうだ選挙にいこう :2010/04/14(水) 09:52:37
>>147 無事できました
別シートを参照する形にしたかったのでこうなりました
=MATCH("りんご",INDIRECT(A15&"!A:A"),0)
どうもありがとうございました
152 :
名無しさん@そうだ選挙にいこう :2010/04/14(水) 22:06:07
ファイルを開いく直前、「○○を入力してください」というメッセージを出して、 開いた時点でその入力したものがA1(例)の特定のセルに入ってるように、 VBAかなにかでどうやったら出来ますか?
153 :
複乳 :2010/04/14(水) 22:33:18
>>152 Thisworkbookはこうやって使うのか・・
sheet1でも標準モジュールでもなく、
Thisworkbookに以下を記述
Private Sub Workbook_Open()
Dim a As String
MsgBox "死にたい。"
a = InputBox("何かを入力してください・・")
ActiveSheet.Cells(1, 1) = a
End Sub
154 :
152 :2010/04/14(水) 22:40:25
>>153 Thanks so much.
でもMsgBoxの内容が怖い・・・
155 :
100年カレンダー :2010/04/14(水) 22:43:39
156 :
名無しさん@そうだ選挙にいこう :2010/04/14(水) 22:45:53
じつは
>>155 で「B367のセルに最初の年を入力してください。」というメッセージを出して、
それをB367に入れるようにしようと思ったけど、コメントの挿入機能ですっきりできた。
こんばんわ。
質問があります、よろしくお願いします。
【1 OSの種類 .】 Windows XP Professinal SP3 32bit
【2 Excelのバージョン 】 Excel 2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 エクセル 常に 別ウインドウ 設定 ファイル default
【質問】 エクセルのファイルを開いた際に、常に別ウインドウで開きたいです。
※エクセル自体の×ボタンを押しても、他のエクセルファイルを開いて
いるものは閉じないようにしたいのです。
今は↓のサイトにある方法でできるようにしているのですが、以前はエクセルの
設定ファイルのようなものを開いて、基本の動作を色々設定したような記憶が
あるのですが忘れてしまったので、その方法を知りたいです。
ttp://www.trickpalace.net/windows/tips/excel.open.window.htm ご存知の方いましたら、どうかよろしくお願いします。
158 :
複乳 :2010/04/14(水) 23:36:00
>>157 ツール オプション 全般 ほかのあっぷりけーしょんを無視する
159 :
157 :2010/04/14(水) 23:54:25
>>158 れす、ありがとうございます。
その設定にしてみましたが、ファイルをクリックしても
エクセルが立ち上がるだけで、ファイルが開きませんでした。
設定ファイルを書き換えたのって、もっと古いバージョンの話じゃなくて? フォルダの中をざっと検索してみたけど、2003にはそういうのは見当たらないっぽいんだけど
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2003 AL-mailというメーラーを使っています。 マクロで集計をしてますが、終わったら「集計が終わりますた!」と 特定の人へメールを送信するにはどうすればいいですか?
>>161 メールを送る方法は色々あるけど、マクロを使ってメーラーを経由せずに直接送るのが定番。
そのマクロを使う方法にも種類があって、一番単純で個人的におすすめするのはCDOを使う方法。
「VBA CDO メール」みたいなキーワードでぐぐるとサンプルが色々出てくる。
初めて質問させていただきます。 会社のPCが新しくなって、Excelが2007になりました。 今まで色々な資料をExcel2003(会社のPCはほとんど今も2003です)で作ってきました。 先程共有サーバー上のFILEを編集したのですが、完成して上書き保存をしようとしたら保存が出来ません。 2007にて2003のFILEを開き編集したら上書き保存は出来ないのでしょうか・・・誰か助けてください>< 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】いいえ 【4 VBAでの回答の可否】否
>>163 まずはエラーメッセージを「そのまま」書き写して。
一字一句間違えないよう、勝手に意訳や省略もしてはいけない。それが質問する時の基本。
>>164 様 ありがとうございます。
エラーメッセージは「保存出来ません」のみでポップアップしてきました。
これで分かるでしょうか・・・
>>165 まずは、名前を付けて保存で自分のHDDに保存できるかどうか試してみて
名前をつけて保存はいけました。 が、別FILEになってしまいます・・・上書きはだめでした><
>>167 検索した限り根本的な解決方法が見つからないので、
名前を付けて保存したあとファイル名を戻してエクスプローラーでコピー
169 :
複乳 :2010/04/15(木) 09:13:59
170 :
名無しさん@そうだ選挙にいこう :2010/04/15(木) 12:10:41
>>163 うちの会社も同じ状態になった。
microsoft updateの自動更新を無効にして、4月14日の更新を
削除したら復活した。
171 :
複乳 :2010/04/15(木) 12:14:00
>>170 もしかしてKB981715が原因だったの?
1:windows 7 2:2007 3:いいえ 4:否 5:2007 保護 グループ化 特定シート内のセルに誤入力を防ぐ為ロックを掛けています 同じものをブック内に作り2ページとなったので2ページ目のみをグループ化して入力情報が無い場合閉じて印刷時に出ないようにしたいのですが シート内にロックがかかっている為にグループを開閉することができません、ロックをかけつつ開閉をするには何か良い方法があればお聞かせ下さい
174 :
157 :2010/04/15(木) 16:17:09
>>160 レスありがとうございます。
もしかしたらOffice2000やXPだったかもしれません。
>>169 レスありがとうございます。
「開く(O)」が既定になっています。
175 :
名無しさん@そうだ選挙にいこう :2010/04/15(木) 16:59:18
EXCEL2007、VistaHomeです。 [Office]ボタンを押すと右側に表示される「最近使用したドキュメント」リストの中の 特定のドキュメント名を削除する(表示しないようにする)には、 どうすれば良いのでしょうか? よろしくお願いします。
>>170 こちらではKB980232を削除することで回復。
どうもXPのほうのアップデートで起こっているらしい。
KB980232はSMB接続時のセキュリティホールの対応らしいので
そのあたりで何か不具合があったと思われ…
177 :
複乳 :2010/04/15(木) 17:59:01
>>174 じゃーわからんなぁ
それか
【質問】 エクセルのファイルを開いた際に〜
だけなら、CTRL+Wでブック一つだけ閉じることも出来るよ
179 :
複乳 :2010/04/15(木) 21:44:58
>>175 特定の項目だけをあとから消すにはレジストリを書き換える。
最初から何も表示されないようにするにはオフィスボタン→Excelのオプション→詳細設定
→最近使用したドキュメントの一覧に表示するドキュメントの数→0にする
特定のファイルだけを記録しないようにすることはできない。
XP 2003 シートの文字が読みにくく、全角の "(" と半角の "(" をよく間違えます。 フォントをMSゴシックに変えられますか?
>>182 ツール→オプション→全般→標準フォント
>>183 シートじゃなくて、シートタブでした。。
185 :
157 :2010/04/15(木) 23:57:41
>>177 たびたび、レスありがとうございます。
(*・ω・)そですか〜。
いろいろとありがとうございました。
しかし、設定ファイルが思い出せない! _| ̄|●lll
excel.xlsとかdefault.xlsみたいな感じだったような。
>>182 シートタブの大きさ位しか変更できないぽいですね。
あとは、アドオンとか作ればできるのかな!?
それか、タブのところのフォントを外部からウインドウ操作系ソフトとかで・・・ウワーナニヲスル
デスクトップテーマを変えるとシートタブのフォントも変わるから、 何かの設定と連動してるんだと思うけど、どこが関係あるのかよくわからんわ。
シートコピーで質問です。 WB1にシート"集計"、"管理"があるとき、次のマクロでコピペすると "集計"、"管理"、"9月"、"8月"、"7月"、"6月"、"5月"、"4月"になってしまいます。 SN2="管理" For i = 4 To 9 SN1 = i & "月" Workbooks(WB1).Worksheets(SN1).Copy After:=Workbooks(WB2).Worksheets(SN2) Next これを、"集計"、"管理"、"4月"、"5月"、"6月"、"7月"、"8月"、"9月"の順で コピペするにはどう書けばいいでしょうか?
188 :
173 :2010/04/16(金) 01:29:22
>>187 SN2="管理"
For i = 9 To 4 Step -1
SN1 = i & "月"
Workbooks(WB1).Worksheets(SN1).Copy After:=Workbooks(WB2).Worksheets(SN2)
Next
>>187 4月から順に「SN2="管理"」シートのすぐ後にコピーしなさい!ってコードだから
当然、最終的には処理の順番とは逆に9月、8月・・・4月の順に並ぶよね。
それが理解できたら、簡単に修正できると思うよ。
>>189 変数の使い方がおかしいね。
"管理"を変数に入れるんじゃなくて、Workbooks(WB2).Worksheets("管理")を変数に入れた方がいい。
ごめん、上は187あてだった。
194 :
複乳 :2010/04/16(金) 09:11:16
>>179 ふっふっふ。そいつは私の偽者だ!
ちなみに手抜きはしていない
195 :
175 :2010/04/16(金) 10:41:11
複数シートのコピーは一気にやった方が速いし順番も書いたとおりになる SN2="管理" SL=array("4月","5月","6月","7月","8月","9月") 'Sheets List Workbooks(WB1).Worksheets(SL).Copy After:=Workbooks(WB2).Worksheets(SN2) Forで回す場合は配列にデータを足すだけにして、ループを抜けてから一気にコピー
XP SP3でExcel2000を使っているのですが、 ホイールクリックにペーストを割り当てるにはどんな方法がありますか?
>>197 フリーウェアかマウス付属のツール。どっちにしてもExcelとは直接関係ない。
199 :
名無しさん@そうだ選挙にいこう :2010/04/16(金) 21:04:29
>>196 値リストってめんどいわ、それこそ.Nameで取得するとか。
200 :
名無しさん@そうだ選挙にいこう :2010/04/16(金) 21:48:31
【1 OSの種類 .】 Windows vista 【2 Excelのバージョン 】 Excel2003 or 2007 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 シート上にマクロを登録したのボタンを配置しているのですが、 シートをスクロールさせてもボタンが動かないようにしたいのですが、方法はあるのでしょうか? ウィンド枠の固定はすでに使用しているので× そのファイルのみで使用するマクロなのでツールバーに配置するのも× C3セルの上くらいにボタンが浮いているというイメージなのですが無理でしょうか?
>>200 そういう方法はない。
代替案として、ユーザーフォームなら場所を固定することが可能。
そのファイルを開いたときだけツールバーを出すってのもできる。
202 :
名無しさん@そうだ選挙にいこう :2010/04/17(土) 01:15:10
Excelの列の数を拡張( 例えば500個以上 )することはできますか?
>>202 出来ません。
2007を買いましょう。
もうすぐ2010も出るけど。
【1 OSの種類 .】 Windows xp 【2 Excelのバージョン 】 Excel2003 or 2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 . (ドット)で始まるシートにハイパーリンクを張りたいのですが失敗します こんな感じでやっています↓ =HYPERLINK("#.aa!V33") シート名にドットで始まる名前をつけるというのがそもそもおかしいのかもしれませんが 私はそれに意見できる立場でないので、シート名変更はできません
=HYPERLINK('.aa'!V33) でいけたけど。
> =HYPERLINK('.aa'!V33) うーん リンクにならなくてエラーでちゃう...
【1 OSの種類 .】 Windows xp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 デスクトップにアクティブなbookの名前を自動で拾って フォーマットをCSV→TXTに変換して保存したいんですけど ファイルネームを上手く拾ってくれたらマイドキュメントに保存されたり デスクトップに保存成功したらファイルネーム拾い間違ったりします ググって探した範囲で色々試しましたがイマイチ解決に至りませんでした 以下ググっていじったコードです Dim Path As String, WSH As Variant Set WSH = CreateObject("Wscript.Shell") Path = WSH.SpecialFolders("Desktop") & "\" Fname = ActiveWorkbook.Name ActiveWorkbook.SaveAs FileName:=Path & Fname.txt, _ FileFormat:=xlCurrentPlatformText Set WSH = Nothing おかしい所の指摘、もしくはコードお願いします
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 エクセル 数独 同じセルに関数を使うこともあれば、 単なる数字を使うこともあるんですけど 関数を使いたいときは関数を、 数字を使いたいときは数字を使う方法がありますか?
>>207 Excelじゃ無理
Visual Basicとか使ってExcelオブジェクトを貼り付ければ可能
211 :
名無しさん@そうだ選挙にいこう :2010/04/17(土) 02:58:13
こんど会社がExcel2003→2007にして大混乱。 この2007へのバージョンアップにあたり気をつけるべきこと(新機能など含む)をまとめたサイトはないですか?
>>204 HYPERLINK関数を使わずに、メニューから挿入→ハイパーリンクってやればできるけど
>>207 VBAが本来持ってる関数だけじゃ無理だけど、APIってのを使えば基本的にはなんでもできる。
ただしかなり難易度が高い。
VBA自体が入門者レベルなら不可能だと思っていい。
>>207 顧客管理かなにか?
Webで作りこむAJAXのほうが適してる気がする。
>>208 ファイル名の処理がおかしい。拡張子をtxtに変えるにはこうする。
Fname = ActiveWorkbook.Name
sp = 1: lp = 0
Do
pp = InStr(sp, Fname, ".")
If pp > 0 Then lp = pp: sp = pp + 1
Loop Until pp = 0
If lp > 0 Then Fname = Left(Fname, lp - 1)
ActiveWorkbook.SaveAs FileName:=Path & Fname & ".txt", _
FileFormat:=xlCurrentPlatformText
>>211 とりあえず2003と2007はまったく違うソフトだと思った方がいい。
今までに作ったシートは、そのまま使えればラッキー、基本的にはかなりの手直しが必要。
とくに印刷関係とオートシェイプ。
>>209 セルには定数か数式かどっちかしか入れることができない。
VBAを使えばセルの内容を書き換えることはできるけど、
普通は =IF(条件, 数式, 定数) みたいにしてセルの表示内容を変更する。
1行目に名前が入ったセルがあります。 データによって丸付き数字(1〜15)が先頭にあるため、丸付き数字だけを 抜きたいのですが、シンプルな書き方があれば教えてください。 CLM = Range("IV1").End(xlToLeft).Column For k = 1 To CLM If Left(Cells(1, k), 1) = "@" Then Cells(1, k) = Right(Cells(1, k).Value, Len(Cells(1, k).Value) - 1) ElseIf Left(Cells(1, k), 1) = "A" Then Cells(1, k) = Right(Cells(1, k).Value, Len(Cells(1, k).Value) - 1) 省略 End If Next
219 :
218 :2010/04/17(土) 05:09:32
x For k = 1 To CLM o For k = 1 To 15
>>218 変数名にkkってのを使うとまずい場合は自分で書き換えてね。
For k = 1 To 15
For kk = Asc("@") To Asc("S")
Cells(1, k).Value = Replace(Cells(1, k), Chr(kk), "")
Next kk, k
>>218 ちょっと修正。これよりシンプルなのは思いつかん
For Each k In Range("A1:O1")
For kk = Asc("@") To Asc("S")
k.Value = Replace(k, Chr(kk), "")
Next kk, k
なんどもスマソ もし先頭以外にも丸付き数字があって、それが消えたら困る場合はこっちね For Each k In Range("A1:O1") For kk = Asc("@") To Asc("S") k.Value = Replace(Left(k, 1), Chr(kk), "") & Mid(k, 2) Next kk, k
最初っから先頭だけ調べた方が簡単で速い For Each k In Range("A1:O1") If "@" <= Left(k, 1) And Left(k, 1) <= "S" Then k.Value = Mid(k, 2) Next
それなら1つ目のLeftは無駄 For Each k In Range("A1:O1") If "@" <= k And Left(k, 1) <= "S" Then k.Value = Mid(k, 2) Next
ウザ
なら来なきゃいいの
次の質問どうぞ
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 エクセル 相談所 複乳 天才 複乳さんは♂ですか?♀ですか?
>>215 出来ましたありがとうございます!
感謝です
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【5 検索キーワード 】 Excel スクロール 左右 取引先からメール添付で来たファイルなんですが、スクロールが縦方向ではなく 横方向になってるものがあります。これ以外のファイルは、問題ありません。 また、スクロールをクリックすると黒い▲が左右方向にしか出ません。 ググって調べてみましたが、マウスを買い換えろとか、Excelの再インストールとか 的はずれなものしか探せませんでした。 何か原因と対策についてご存知の方がいらっしゃれば教えてください。 よろしくお願いします。
WinXP Excel2007 Excelを起動したとき、自分が創ったテンプレートを開くように設定するやり方があれば教えてほしいです
>>217 その手でやってみます
ありがとうございました
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 vbYes 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 日付 文字列 あるセルに入力してある日付をVBAで他のセルに転記したいのですが、 転記先セルの表示形式を"ggge年m月d日"としていても、 2010/4/19 と表示されてしまいます。 転記と言っても sheets(1).cells(1,1).value=sheets(2).cell(2,3)value ってな感じです。 この場合、コード書いて表示形式を指定スル必要があるのでしょうか?
>>234 試してみたけど、ちゃんと「平成22年4月19日」と表示された。
本当に書式がちゃんと設定されているか、プログラムのどこかでうっかり書式を変えてないか、よーく調べてみ。
>>231 ツール → オプション → 表示 → ウィンドウ オプション → 垂直スクロール バーをチェック
238 :
236 :2010/04/17(土) 22:54:27
スクロールバーの有る・無しだけの問題なら
>>237 で正解ですね。
239 :
名無しさん@そうだ選挙にいこう :2010/04/17(土) 22:54:55
max関数とlarge関数で質問があります。 =max(a1:a100) と =large(a1:a100,1) は、 常に同じ値を返すと考えていいですか?
240 :
名無しさん@そうだ選挙にいこう :2010/04/17(土) 23:01:38
DATEDIF関数ってありますよな? あれって何の英単語をもとにしてできたか考えたけど 最初はDATE DIFINITIONと思ってた。 しかし今ひょっとしてDATE DIFFERENCEという気がしてきた。 この考えはあってるか?
>>239 今、試しに日付をやってみたらmax関数の場合は日付を、large関数の場合はシリアル値を、
と違う値を返してきましたよ。
242 :
241 :2010/04/17(土) 23:10:04
補足; シリアル値は同じ(最大)値で、表示上max関数の場合は日付を、large関数の場合はシリアル値を 返してきたってことです。
243 :
239 :2010/04/17(土) 23:35:06
>>241 それは単にそのセルにその書式が設定されていただけでは? ゲラゲラ
>>241-242 セルの書式設定が引き継がれるかどうか…が、
=max() と =large() の違いなの?
関数のヘルプを見たら、こんなんだったけど。
max 引数の最大値を返す。
large データの中から指定した<順位>番目に大きな値を返す。
245 :
名無しさん@そうだ選挙にいこう :2010/04/17(土) 23:49:22
特定のワークシートを自分で定義したクラスのインスタンスとするには どうすればいいでしょうか? 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 ワークシート サブクラス Worksheet 定義 特定の種類のワークシートをWorksheet クラスのサブクラス (たとえば、EmployeesTable)として 定義してやりたいんですが、方法がわからず、困っています。 (1) クラス EmployeesTable を Worksheet のサブクラスとして定義する (2) 各ワークシートのインスタンス(たとえば Sheet1)を EmployeesTable の インスタンスとして宣言?する には、どうすればいいでしょうか? ただし、EmployeesTable のインスタンスとするシートは、 動的に生成しないではじめから用意しておくものとします。 それとも、VBA でこういう方法でプログラムしようとするのは、 筋が悪すぎます? よろしくお願いします。 m(_ _)m
>>239 結果は同じになるけど、MAXの方が速い
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 少しだけ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 VBA 個数 カウント 2010/1/1 みかん 2010/1/1 みかん 2010/1/1 りんご 2010/1/2 オレンジ 2010/1/2 りんご 2010/1/2 オレンジ 2010/1/2 オレンジ 2010/1/2 みかん このように日付順に並んだ商品取引記録があります。 日付ごとに扱った商品の数を数えたいんですが、重複したデータは除いて数えたいです。 上の表だと1月1日はみかんとりんご2種類なので2、2日は3…と数えるには VBAでどのように書けばいいんでしょうか?
249 :
複乳 :2010/04/18(日) 01:34:26
>>245 やったことないから予想だけど。
ブックが持っているのはワークシートのコレクションだから、
EmployeesTableクラスのコレクションを持てるbookクラスを継承した新ブッククラスを作る必要があるとおもう
そしてその新ブックの表示のためにはアプリケーションをいじるかユーザーフォームからということになるだろうな
メソッドなら関数作って呼び出し、プロパティなら変数でも使った方がいいかな
>筋が悪すぎます?
場合によるけど多分悪い
>>240 DATEDIF 語源 の検索結果 約 6,220 件中 1 - 10 件目 (0.27 秒)
DATE DIFference excel の検索結果 約 42,000,000 件中 1 - 10 件目 (0.12 秒)
DATE DIFINITION excel の検索結果 約 24,000,000 件中 1 - 10 件目 (0.25 秒)
MSに聞けば確実。
>>231 再インストールすれば治っただろうし、あながち的外れというわけでもないような
difinitionなわけないだろ 理由は辞書を引けばわかる
>>248 データがA1から始まって、日付がA列、品名がB列として
Sub a()
Set sc = Range("A1") '開始セル
For Each r In Range(sc, sc.End(xlDown).Offset(1))
If dy <> r.Text Then
If r.Row <> sc.Row Then
Debug.Print dy, dic.Count '結果の表示
Set dic = Nothing
End If
Set dic = CreateObject("Scripting.Dictionary")
dy = r.Text
End If
dic(r.Offset(0, 1).Value) = ""
Next
End Sub
252 :
241 :2010/04/18(日) 10:20:51
>>243 適当なセルに複数入れてみた結果、それぞれ関数によって表示が変わりますが。
ゲラゲラする前に試してみようよ。なっ。
>>252 「大丈夫」って背中を押してもらわなきゃ満足に関数を使えず、
さらにマジメに答えてくれた人を嘲笑するような人に、それ以上
マジメに答えても損するのはあなただよ。
うんこは触っちゃダメ。
>>253 > うんこは触っちゃダメ。
すげぇ いい例えだなww
俺もそれ別のところで使うわwwww
値は同じだよな 表示形式が違うだけで 調べてみたところ、MIN関数は選択範囲の一番上のセルの書式を自動的にコピーするようだ =MIN(A2:A10)とやると、一番小さな数値が結果として返され、A2セルの書式がコピーされる 書式がコピーされるのはMIN関数を入力した瞬間だけで、あとからA2セルの書式を変えても影響を受けない さらに条件によっては書式がコピーされない場合もある けっこう複雑だ
256 :
名無しさん@そうだ選挙にいこう :2010/04/18(日) 18:19:11
A1の絶対参照は$A$1ですが、他にも$A1やA$1があります。 特に後者2つ$A1やA$1を含めた絶対参照を使いこなすため 何か数学的コツ、というかExcel学的コツはありますか?
>>256 式を下や右にコピペした時に、$が付いているほうは変わらないってだけだろ?
そんなに難しく考えなくてもよくね?
258 :
名無しさん@そうだ選挙にいこう :2010/04/18(日) 19:36:34
1つのシートにたくさん表があって、そのそれぞれの表にオートフィルタをする方法はどうやりますか?
>>258 できません
1つのシートにフィルタは1つ
260 :
258 :2010/04/18(日) 22:01:22
それは困るじゃないか。
261 :
名無しさん@そうだ選挙にいこう :2010/04/18(日) 22:19:39
教えたまえ 生年月日が「S61.4.19」の文字列の形式で入ってるデータベースがあり、 これらを全部シリアル値に変えるにはどうしたらいい?
262 :
名無しさん@そうだ選挙にいこう :2010/04/18(日) 22:31:28
>>261 その列を選んで「データ」→「区切り位置」→「完了」
ってやると、あら不思議、シリアル値に
263 :
名無しさん@そうだ選挙にいこう :2010/04/18(日) 22:48:27
100枚のワークシートを作るにはどうすればいいですか? 1つ1つ作るのは面倒なので。 あと、各ワークシート名を、別ファイルで用意したA1〜A100の100個のセル内の文字列をそのまま100個のワークシート名として使いたいのですが、 その方法とは?
265 :
名無しさん@そうだ選挙にいこう :2010/04/18(日) 23:03:53
>>262 できないぞ
しかし . の区切り記号で区切って3つの数字を取りだし、date関数でその3つをインプットしたらできたわ
266 :
腹乳 :2010/04/19(月) 00:03:16
>>265 =date(S61,4,19)
こんな感じにしたと?
Sが入ってる時点で、シリアル値にならないっしょ。
どうせだったら、Ctrl+H(置換)で . を / に全て換えてやれば
関数を使わずにシリアル値に置き換わるぞ。
確認したのは Excel 2003 だけど。
267 :
名無しさん@そうだ選挙にいこう :2010/04/19(月) 00:10:55
>>266 No way.
sははずしたよ。それでSの年号に1925を足して西暦に。
たしかに . → / に変換したらできましたわ。 except I had to delete the other " . " right after "S", because the original data format was, like, "S.62.12.30"
268 :
名無しさん@そうだ選挙にいこう :2010/04/19(月) 00:30:50
文字列に空白がいくつか存在してて、それらをすべて消す方法はありますか? trim関数だと1個は消えないし。 名簿で名前が「複 乳 太 郎」のような感じで、姓と名の間だけじゃなく苗字の間にも入ってるのを消したいんです。
=SUBSTITUTE(SUBSTITUTE(A1," ","")," ","")
270 :
名無しさん@そうだ選挙にいこう :2010/04/19(月) 01:33:19
>>263 作るだけならVBAで簡単にできるけど、
1つのブックに100枚もシートを作ったら
めちゃくちゃ重くなるのでおすすめできない
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 excel 図形 反転 文字列 フローチャート作ってるんだけど、 上下反転させた図形にテキストを入力すると文字まで反転する。 どうすれば図形のみを反転させることができるのでしょうか?
>>272 図形を反転させたあと、逆さになった文字を右クリック→テキスト効果の設定
3-D 回転でZを180°にします
>>273 おお!ありがとうございます!
昔は反転させたくてもできなかったのになぜ2007になったら勝手にと・・・
275 :
名無しさん@そうだ選挙にいこう :2010/04/19(月) 13:15:32
フィルタオプションの設定で 例えばある列項目が200以上かつ偶数のもののみを抽出するにはどうすればいいですか?
別の列に「200以上かつ偶数のもののみ」だったら1が入る式をつくれ
277 :
名無しさん@そうだ選挙にいこう :2010/04/19(月) 19:34:41
excelを勉強していますが、配列数式を勉強する利点はありますか?
278 :
名無しさん@そうだ選挙にいこう :2010/04/19(月) 20:07:06
>>277 個人的に配列で遊ぶのは好きだけど、勉強するメリットはない
それより簡単マクロを勉強した方がマシ
279 :
277 :2010/04/19(月) 20:26:15
>>278 わかりました。配列あきらめます。
ではおっしゃるとおりマクロを勉強しようと思いますが、いい本ありますか?
近くの本屋がPM9に閉まるので、今日それまでに買えると嬉しいな。
280 :
277 :2010/04/19(月) 20:51:16
うぁあ、もう閉まるぅぅ
281 :
名無しさん@そうだ選挙にいこう :2010/04/19(月) 20:51:51
>>279 とりあえず好きなの一冊選べばいいんじゃない?
どうせ一冊だけではよく分からないと思うからw
282 :
名無しさん@そうだ選挙にいこう :2010/04/19(月) 21:48:19
5ケタあるいは6ケタの数字がいっぱいあって、 これらを「 ○○万 」あるいは「 ○万 」と表示させるにはどうしたらいいでしょうか? 計算にも使いたいので文字列には変換しないでちょ
283 :
名無しさん@そうだ選挙にいこう :2010/04/19(月) 21:49:05
1000の位より下の表示は無視です
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2007
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 是非
以前、
>>81 で書き込んだモノです。
教えていただきたいのですが、A3シートに入れた数字を
掛け算して、必要個数をA4に表示させるというマクロで
A3に、半角数字以外を入れると、メッセージが出るように
しようと思ったのですが…
if range("A3") <> intenger then
msgbox "数字を入れろ"
End
else
range("A4") = range("A3") * 2
end if
こうかなーっと思ったら、何を入れても数字を入れろと
いう結果で(´・ω・`)
intenger じゃなく、LONGなのかなーっとか思ったりも
しましたが、それだとエラー出てしまうし、秀和社の本では
答えが出ず…です。
申し訳ありませんが、宜しければ、正しいコードを
教えていただけないでしょうか?
285 :
名無しさん@そうだ選挙にいこう :2010/04/19(月) 22:15:26
>>284 前のはよく見てないけど
If IsNumeric(Range("A3").Value) = False Then
MsgBox "数字を入れろ"
End
Else
Range("A4").Value = Range("A3").Value * 2
End If
>>285 ありがとうございます!! IsNumeric関数
…よく理解出来て無かったです。
ぐぐったら、ワークシートのマクロばかりでて、
困っていたのですが、これで一つ勉強になりました。
ありがとうございます!!
>>275 検索条件には数式が使える。
ある列がA列なら
検索条件範囲の1行目を空白
2行目に=IF(A2>=200,MOD(A2,2)=0)
でいける。
作業列は要らん。
>>277 あるよ。
初心者にすげーって尊敬される。
ただしも両刃の剣で分ってる人には馬鹿にされるけどな。
290 :
名無しさん@そうだ選挙にいこう :2010/04/19(月) 23:08:18
245 です。 >> 249 ごめんなさい、お礼が遅くなりました。 > ブックが持っているのはワークシートのコレクションだから、 > EmployeesTableクラスのコレクションを持てるbookクラスを > 継承した新ブッククラスを作る必要があるとおもう 複雑になりそうですね。 とりあえず、元になるワークシート(例: EmployeesTable) に関数 (例: SelectEmployees)を定義しておいて、それをコピーして使おう と思っているのですが、任意のワークシートが、当該の関数(この場合 SelectEmployees)を持っているかどうかを、調べるにはどうすれば よいのでしょうか? ワークシートをユーザ定義のクラスに属させることができれば、 クラス名を調べることでできそうなのですが、無理っぽいので、 別に方法があれば、と思うのですが…。 現実解としては、特定のセルに特定の文字列が入っているかとか、 シート名のパタンとかで判断することになりそうなのですが…。
291 :
名無しさん@そうだ選挙にいこう :2010/04/19(月) 23:16:37
>>289 それ、だめです。
「計算にも使いたいので値はそのままにして変換しないでちょ」って書いてたでしょ。
292 :
282 :2010/04/19(月) 23:18:07
セルの表示形式のユーザ定義を使って、どうにかできないのかにゃ?
0"."0000"万" あたりで勘弁してください
294 :
282 :2010/04/19(月) 23:56:34
>>293 それだと下のようになるではないか
1.2345万
5.4621万
45.6546万
12.3224万
0.1564万
295 :
名無しさん@そうだ選挙にいこう :2010/04/19(月) 23:59:46
上の例だと、このようにしたい 1万 5万 46万 12万 0万
変換しないで 万単位は難しいかもね 3桁ごとなら 書式設定( 0,"千" )で出来るけど
>>291 この例だとA1セルの内容は変わってないから、そっちで計算すればいいじゃん
書式で万単位にすることはできない 作業列を使ってデータを2種類入れておくしかない
>計算にも使いたいので文字列には変換しないでちょ 意味がワカランw 最後の「ちょ」は何ですか?
>>282 >計算にも使いたいので文字列には変換しないでちょ
なんだから
=A1/10000 として書式を 0"万"
>>291 はあえて無視する
>>290 シートがそれぞれ関数を持つんじゃなく標準モジュールに書いて
シートでは関数を呼び出すだけにすればいいんじゃないの?
どのシートが呼び出したかは引数にシートを渡してやれば
Isでシートを調べる事はできるっしょ
それと、この事だけど
>ワークシートをユーザ定義のクラスに属させることができれば
Class_InitializeプロシージャでWorksheet型かSheet型で定義した変数に
Setするんじゃダメなのか?
まぁ、やりたい事がよく分からんから全然的外れな事を言ってしまったかも知れんが
302 :
名無しさん@そうだ選挙にいこう :2010/04/20(火) 09:11:29
【1 OSの種類 .】 Windows vista 【2 Excelのバージョン 】 Excel 2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 エクセル・VBA・並び替え 等々 質問です。今回故あってVBAを使う作業をすることになったんですが、ほとんどわかりません。 初心者同然で申し訳ないんですが、作業量が膨大なので、VBAで教えてください。 ある体育競技のタイム集計をすることになりました。データは、 A列:名前 B列:種目(数字で表してある) C列:タイム D列:年齢 といった具合です。これを、 @種目別に並び変えて(数字を昇順にして) A各種目内でタイムの速い順に並び変えて Bもしタイムが同じであれば若い順に並び変えて C最後にそれをもう一度任意の順に並び変える(速いほうから9人ずつのグループを作り、各グループ内で速いほうから9,8,5,4,1,2,3,6,7の順に並び替えます) といった作業をしたいです。並び替えの優先順位は、種目>タイム>年齢だということです。 一つの列のデータの小さい(or大きい)順に、行ごと並び変える方法を教えてください。あと、種目別に並び変える際には、各種目間に空白の行があるとわかりやすいので、それもできれば追加で教えてください。 本も買ってみて基本的なことは理解したんですが、VBAって指示の種類が豊富でなかなか自分の欲しい情報がみつからないですね… いきなり初歩的な質問ですみませんが、よろしくお願いします。
>>295 表示形式 [>10000]#"万"CtrlとJ同時押し###0;"0万"
配置 折り返して全体を表示する
これで大体いけるんじゃないか?
ただし行の高さが高かったりフォントサイズが小さかったりしたらNG
またマイナスも0万となるから適宜変更汁
0"万"CtrlとJ同時押し###0で良かったか
305 :
複乳 :2010/04/20(火) 09:39:42
>>302 マクロの記録は使った?
それでも分からなかったらも一度質問してー
>>302 「並べ替え」の「ユーザー設定」で優先順位をB列、C列、D列の順番にすればいい
これをVBAでやりたいんならマクロの記録
手順(4)の意味がよくわからない
人数が9で割り切れないときはどうするの?
>>306 たぶん一番速い人が真ん中に来るその体育競技とは水泳なのでしょう。
その為に順番指定する手順Cが必要なのだろうな。
308 :
名無しさん@そうだ選挙にいこう :2010/04/20(火) 12:37:14
VLOOKUP関数で、最初の引数のキー値を、表の左端ではなくそのつどいろんな列で検索したいことが多々あります。 そういうときはどうすればいいですか?
泣く
311 :
308 :2010/04/20(火) 13:12:28
>>309-310 原子爆弾を製造してExcel会社に落とす、
という方法じゃだめですか?
MATCHとINDEX
313 :
308 :2010/04/20(火) 14:31:14
>>312 そんなややこしいことはしたくないんだ
いま思ったけど、LOOKUP関数ってまさにこのためにあるって感じでしょうか?
とりあえずオートフィルタで。
315 :
308 :2010/04/20(火) 15:40:36
>>314 通ですね
凡人なら「とりあえずビールで」と言うところですよ
昔の梅酒好きの彼女は「とりあえず梅酒で」とよく言ってみんなを驚かせてたけどな
316 :
302 :2010/04/20(火) 16:32:43
>>305 >>306 ありがとうございます。並び替えやってみました。
こりゃ便利ですね。これなら特にVBAにこだわる必要はなさそうです。
>>306 その場合は、余った数だけでグループを作ります。もっとも、10人余ったら9:1ではなく5:5にするとか、多少ややこしいですが、手作業でするなら特に問題ではありません。
あとは、簡単に任意の順番に行ごと並び替えができればいいんですが、何かいい方法がありましたら、教えてください。
>>307 特に必要だとも思わなかったので伏せましたが、そうです水泳です。
質問ばかりで申し訳ないですが、よろしくお願いします。
317 :
児玉清 :2010/04/20(火) 16:48:40
たくさんのセルに複雑な関数がいっぱい入ってて それらをすべて確かめるためにメモ帳に貼り付けたくなりました。 普通に貼り付けると値になるし、できません。 その方法とは?
318 :
複乳 :2010/04/20(火) 17:05:34
>>316 1-3はもうできたとみていいのかな
E2に
=IF(B2<>B1,9,IF(E1=9,8,0)+IF(E1=8,5,0)+IF(E1=5,4,0)+IF(E1=4,1,0)+IF(E1=1,2,0)+IF(E1=2,3,0)+IF(E1=3,6,0)+IF(E1=6,7,0)+IF(E1=7,9,0))
下にオートフィル、E列を選択してコピー、値で貼り付け
E列で並びかえ
>>317 >普通に貼り付けると
って、もう解っているんだろ。
320 :
複乳 :2010/04/20(火) 18:11:33
オプションで数式表示
>>313 全然的外れ
VLOOKUPの完全一致のFALSE検索の代用にはならない。
検査範囲が昇順にソートされてれば工夫して完全一致検索もできるけどな。
323 :
児玉清 :2010/04/20(火) 19:48:09
>>321 そのとおり!
321さん、お見事!! パリそしてニースにいらしていただきます!! おめでとう!! 良かった!!
324 :
児玉清 :2010/04/20(火) 19:52:26
さらに321さんにはトップ賞といたしまして(複乳さんのおっぱい)を合わせてお持ち帰りいただきます
そして、今日ごレスいただきました他2名様
>>319 さん、
>>320 さん、には(果物いっぱい)をお持ち帰りいただきます。
そして、今日見事パリ行きとなられました
>>321 さんを応援していただいた方には(500円でマスターできるExcel入門書)をプレゼントいたします
321さん、見事パリ行きを射止めたことをお伝えして、また来週この時間パリがあなたを待っております!! ごきげんよう!! さよなら!!
325 :
名無しさん@そうだ選挙にいこう :2010/04/20(火) 22:22:28
マクロを勉強しようと思い本屋に見に行ったのですが ちゃんとした本はつまんないことしか書いてありませんでした。 そういうのではなく、マクロ利用で便利な機能がたくさん紹介されててすぐ使えるような本ってないですか? マクロ自体で何ができるかすら全くみえてないので、最初は便利な機能の使用例をたくさん見る、というところからスタートしたいので。 さて、その本の名は?
326 :
名無しさん@そうだ選挙にいこう :2010/04/20(火) 22:47:39
時間のシリアル値で 表示を 「hh.hh 時間」にするにはどうしたらいいですか? つまり、1時間20分だったら、1.33時間としたいのです。
あ,直リンしちゃったすまん・・
>>326 A1に1:20と打ってあれば
=A1*24
表示形式 G/標準"時間"
小数点下2桁で四捨五入するなら 0.00"時間"
>>326 書式だけでは無理
=TEXT(A1*24,"00.00 時間")
みたいに数式を別セルに入れる必要がある
331 :
児玉清 :2010/04/20(火) 23:11:11
>>327 結構!
しかし、そこはマクロについてあまり詳しく書いてないようですね。
また明日本屋で探すかな。
惜しくもパリ行きなりませんでしたが、また明日この時間パリがあなたを待っております!! ごきげんよう!! さよなら!! 残念!!
332 :
複乳 :2010/04/20(火) 23:43:28
>>325 実務的なことをやりたいならオフィス田中 インストラクターのネタ帳 辺りで具ぐれ
曲芸をやりたいならニコニコ動画でエクセル、excel、vba このどれかで検索
プログラムは根本的に「何をやりたいか」が無いと覚えられないと思ったほうがいいよ
あと本は知らん。ついでにこのスレの連中は本を読んでない人が多い気がする
どこに書いてあるか、本は探すのがめんどくさい ぐーぐる使った方が早い
334 :
複乳 :2010/04/21(水) 00:30:04
だのう。とっつきにくいもの(プログラムとか)はあったほうがいいかもしれんが エクセルは詰まったらその都度調べた方が早いよな
本は読まないなぁ
検索すると何でも誰かが過去に挑戦してくれてるからな
>>303-304 Ctrl+J知らなかった、ありがと
本からだとサンプルを打ち込むのが面倒 WEBならコピペ一発
337 :
名無しさん@そうだ選挙にいこう :2010/04/21(水) 20:57:47
よろしくお願いします。 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 同じ 数字 入力 桁 増 入力した数字がダブって反映されます。 例) 4 と入力すれば 44 45 と入力すれば 445 表示も44や445になり、ユーザー設定は標準のままです。 他のシートやファイルは問題なく、ひとつのシートにだけ起こります。 元に戻す方法(普通に入力できる方法)を教えて下さい。
そのシートを捨てる
339 :
名無しさん@そうだ選挙にいこう :2010/04/21(水) 21:02:07
訂正 ユーザー設定ではなくセルの書式設定でした。
340 :
名無しさん@そうだ選挙にいこう :2010/04/21(水) 21:02:45
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 是非 教えて下さい(´・ω・`) SHEET2 に A1〜A6 A8〜A10に、情報があって A2に名前、A3〜A6に点数、A8〜A10に、○、▲、□って感じの 文字列があると思ってください。 で、そんな感じのがズラーって並んでて、ボタンを押したら 対象になる人だけをSHEET1に表示させるようにしようと 思ってます。 で、シート2に、オートフィルターをかけて、可視範囲を コピーしてシート1に…ってすると、A8〜A10だけ コピーされません。 こうした場合は、どうしたらいいんでしょうか? 真ん中のA7の空欄は、表製作者の意向で、文字を入れるとか 無しなのです…(´・ω・`) SUMIFの関数みたいに、検索条件から値を返すとか出来たら なんとかしようもあるんですが、VLOOKUPでやろうとしたら なんかエラーが出て返せませんし(´・ω・`) 最悪、FindとOFFせっとで探して、それをコピー&ペースト させるしかないのでしょうか? 申し訳ありませんが、ご教授をお願いいたします。
342 :
複乳 :2010/04/21(水) 23:26:03
>>341 空白があるとダメなら、何か入力してしまえば?
オートフィルタの処理終わらせたあとに削除とか。
私だったらfornextでやる。横向きにループさせて同じだったらコピー
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 不可 C列に管理番号があり、E+4ケタの数字が入っていました。 従来は、管理番号がE9999になったらE0001に戻していましたが、 今年度から新規の番号はE01+4ケタの数字に変わりました。 このため、昇順で並べ替えをすると、最新の番号が 上方へ行ってしまいます。 こんな感じに並び替えるには、どうすればいいでしょうか? E9996 E9995 E9991 E010001 E9993 ↓ E9991 E9993 E9995 E9996 E010001
>>343 番号があるセルをA1〜とすると、B列のセルにLEN関数入れて文字数を表示して、
B列→A列で昇順にする
345 :
複乳 :2010/04/21(水) 23:52:28
>>343 ない。作業列を使う
D1=RIGHT(C1,LEN(C1)-1)*1
下にオートフィル
でD列で並び替え。
>>317 Ctrl + Shift + @
(正確に言うと、Ctrl + バッククォート [ ` ])
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 【4 VBAでの回答の可否】
348 :
複乳 :2010/04/22(木) 19:17:02
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい (初級レベル) 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 Googleやヘルプでの検索キーワード a1から最大11列(毎回変動する)の見出し行に対し、 最大10行程度(毎回変動する)の文字列(英数文字)の表があります。 A1 B1 C1 … あ い う … aaa ddd ggg … bbb eee hhh … ccc fff iii … (空白) … … … これを下記のように並び替えて(空白セルは無視して次の列に) 指定のセルに転記したいのですが、どのようにすれば良いでしょうか? aaa あ bbb あ ccc あ ddd い eee い ffff い … …
上の書き込みは間違いです、文章作成中に誤って書き込んでしまいました 申し訳ありません 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】いいえ 【4 VBAでの回答の可否】不可 グラフを作成したいのですが、使用するデータが2種類あります 片方は理論値(x=1.y=2 x=2.y=4....といったもの) もう片方は実験値(x=1.13.=2.28....)といったもので 二つの表に纏めてあります。 この二つの表からグラフを作成しようとすると、どうやっても 両方、ないし片方の数値yがx軸と対応しません。 (片方のグラフが、明らかに表と比較して正しくない位置にある) 二つの表のxを、同時にx軸に設定出来ていないのが原因かと思われるのですが 解決法をご存知の方、よろしければご解答お願いいたします
351 :
複乳 :2010/04/22(木) 19:37:51
>>349 空白は必ず最終行と言うことでいいかな?
>>350 A列に両方のX、B列に理論値のY、C列に実験値のYを並べる。
こんなふうに2つのデータを縦並びにすればいい。
A B C
X Y
X Y
X Y
X Y
X Y
X Y
>>340 ありがとうございました。
ファイル閉じて1日経ったら元に戻っていました。
次に同じ状態になった時に試してみたいと思います。
>>338 ありがとうございます。
どうにもならなくなったら捨てます。
>>352 解決しました。
大変助かりました、ありがとうございます!
>>351 はい、そうです。
よろしくお願いします…。
356 :
343 :2010/04/22(木) 20:35:27
357 :
複乳 :2010/04/22(木) 20:41:08
>>356 kakidasi = 15
の15が書き出す列。O列かな
Option Explicit
Sub fukuku()
Dim gyo, retu, kakidasi, sex, i, k, unko As Integer
retu = Range("M1").End(xlToLeft).Column
kakidasi = 15
sex = 1
For i = 1 To retu
gyo = Cells(20, i).End(xlUp).Row
Range(Cells(sex, kakidasi), Cells(sex + gyo - 2, kakidasi)).Value = _
Range(Cells(2, i), Cells(gyo, i)).Value
sex = sex + gyo - 1
Next
For unko = sex To 1 Step -1
If Cells(unko, kakidasi) = "" Then
Cells(unko, kakidasi).Delete Shift:=xlUp
End If
Next
End Sub
358 :
複乳 :2010/04/22(木) 20:42:26
>>357 dd
で、349の例示ではわかりにくかったのかも知れませんが
下記のようにできるとなおパーフェクトなのですが…どうでしょうか?
巨人 阪神
坂本 マートン
松本 平野
小笠原 鳥谷
↓
坂本 巨人
松本 巨人
小笠原 巨人
マートン 阪神
平野 阪神
鳥谷 阪神
360 :
複乳 :2010/04/22(木) 21:17:48
あ、わすれてた しばし待て
361 :
複乳 :2010/04/22(木) 21:20:49
こんなもんかねえ Option Explicit Sub fukuku() Dim gyo, retu, kakidasi, sex, i, k, unko As Integer retu = Range("M1").End(xlToLeft).Column kakidasi = 15 sex = 1 For i = 1 To retu gyo = Cells(20, i).End(xlUp).Row Range(Cells(sex, kakidasi), Cells(sex + gyo - 2, kakidasi)).Value = _ Range(Cells(2, i), Cells(gyo, i)).Value Range(Cells(sex, kakidasi + 1), Cells(sex + gyo - 2, kakidasi + 1)).Value = _ Cells(1, i).Value sex = sex + gyo - 1 Next For unko = sex To 1 Step -1 If Cells(unko, kakidasi) = "" Then Range(Cells(unko, kakidasi), Cells(unko, kakidasi + 1)).Delete Shift:=xlUp End If Next End Sub
>>361 おお神よ…!
感謝に絶えませぬ…。
書き出しのセル位置(例えばA列の12行目)を設定するには
変数を
途中で送信してしまった 変数を弄ればよいのですね。 ここはちょっと頑張ってみます。 有り難うございました!!
364 :
名無しさん@そうだ選挙にいこう :2010/04/23(金) 09:40:26
【1 OSの種類 .】 Windows** 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 データ 抜き出し 並び替え リンク 1 1234 2 ⇒ 5678 3 9... 4 5 一列に並んだデータを4コずつ抜き出して並べたいです。 6 初歩的なことなのかもしれませんが教えてください。 7 すみません。 8 9 . .
365 :
364 :2010/04/23(金) 09:48:00
記入漏れです 【1 OSの種類 .】 Windows vista すみませんすみません。
366 :
複乳 :2010/04/23(金) 10:29:50
>>364 b1=INDIRECT("r"&(ROW()-1)*4+COLUMN()-1 &"c1",0)
CD列にオートフィル、下にオートフィル
367 :
364 :2010/04/23(金) 10:32:31
>>366 ありがとうございます。
本当に助かりました。
すみませんすみませんすみません。
>>361 その変数宣言だと、unkoだけがIntegerで他が全部Variantじゃねえか。
ちゃんと宣言しろよ。
369 :
複乳 :2010/04/23(金) 11:42:17
あれそうなのか。すまん 最近Cばっか触ってたせいか混同しちまった
370 :
名無しさん@そうだ選挙にいこう :2010/04/23(金) 11:59:33
Visual Basicはどうしてそう呼ぶかと思っていたら 所詮Basicだからだったな 何か新しいものを期待していたおれが悪かった
371 :
名無しさん@そうだ選挙にいこう :2010/04/23(金) 12:06:34
>>369 ホームレスがまた知らない道を教えてるのか
浅ましいことだな
いいかげんにしろ
372 :
複乳 :2010/04/23(金) 12:14:23
たどり着けたしイイジャンw
和んだ(´ω`)
374 :
名無しさん@そうだ選挙にいこう :2010/04/23(金) 12:53:00
375 :
複乳 :2010/04/23(金) 13:06:05
>>374 君、面白いから私の突っ込み役として常駐しなさい
ついに複乳さんに助手が・・・?
377 :
名無しさん@そうだ選挙にいこう :2010/04/23(金) 13:39:35
>>375 さすがホームレスだ
虚勢を張ることくらいしか出来ないらしい
378 :
名無しさん@そうだ選挙にいこう :2010/04/23(金) 13:46:19
>>377 いや、あらゆる環境逆境にさえも適応できるんだよ。
複乳様は相変わらずINDIRECT好きだねぇw まぁがん枯れ
>>379 何を言いたいの?
揮発性関数のことならINDEXも同じだろ?
複乳さんは神だお!
>>380 Excel95使ってるの?
97からは違うぜよ
セルを選択して右下の四角をドラッグアンドドロップして連続データを作成すると 再計算中と出て長く待たされますので計算量を少なくしたいです。 そのセルに入ってる計算式はオリジナルの関数なんですが public function a() as string Aの処理 Bの処理 end function となってて このAの処理はドラッグアンドドロップする全てのセルで結果が共通なので 最初の1セル目だけ計算して2つ目以降のセルでは結果を使いまわすだけにすれば計算量が減らせますが どうすれば良いでしょうか エクセル2002です よろしくおねがいします。
>>383 一個の配列数式にすりゃいいんじゃねーの。
配列数式をフィルコピーするDQNもいるけどな。
ぱっと思いつくやり方は Aの処理をa()の外に出して 最初のセルかどうかを判定して最初のセルのときだけ Aの処理を実行してあげれば良いと思うのですが ドラッグアンドドロップするときの最初のセルかどうかを判断するにはどうすればいいでしょうか
386 :
383 :2010/04/23(金) 21:12:33
具体的にどんなことやりたくて、どんな関数書いてるか晒してみたら? もっといい方法があるかもよ?
388 :
複乳 :2010/04/23(金) 21:15:28
>>385 ×ドラッグアンドドロップ
○ドラッグ
そしてその処理をオートフィルという
あとstring型からして配列数式は使えないと思うが・・
Aの処理がなにかわからんとどうしようもないかなぁ
>>388 public function a() as string()
として配列数式対応にすればいいだけの話。
もちろん関数の中身は配列が扱えるように書く必要があるけどね。
だいたい
>>383 の関数は引数がないみたいだが、DQNの定番の
Application.Volatileを書いてる関数なんじゃないのか?
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 Hyperlink|ハイパーリンク excel|エクセル 複写|コピー できない エクセルにはハイパーリンク機能があって、=hyperlink(Cell-1,Cell-2) でリンクは作れるものの、 「地球+クリップ」のアイコンで作成したハイパーリンクのように他のセル内容に依存しない状態に変更させる方法が分かりません。 何段階もの階層と複数のフォルダーに入っている5万個ほどのファイルリストはリダイレクトで作成したのですが、 できればこのファイルリストを元にして、ハイパーリンクを付けて台帳のようなものを作成したいと思います。 WSHを使うことでエクセルを操れると知ったので参考書も購入して読んでいるところですが、巧い方法がありましたらお願いします。
392 :
349 :2010/04/23(金) 22:02:51
>>368 ,369
あんまり意味がわかってないのだが、
後学の為にも改訂する必要があるならレスってくれると嬉しい…。
393 :
名無しさん@そうだ選挙にいこう :2010/04/23(金) 22:11:16
>>392 プログラムは見てないけど、
Dim gyo As intger, retu As intger, kakidasi As intger・・・・
みたいにする。
個人的にはIntgerよりLongの方がいい気もするけど、Intgerでエラーが起きないんだったらw、別に構わないか・・・
394 :
複乳 :2010/04/23(金) 22:23:58
>>389 んな方法があるのか・・
>>392 あるといえばある、無いといえば無いんだよなー
データ型を知ってる前提で話すと、368だとunko意外の変数はvariant型になる
variantはメモリの占有サイズが大きい上、勝手に文字列・数値の変換したりと場合によっては不具合を起こす。
ただ小さいマクロ、それこそ
>>361 程度なら不具合も起こそうと思わない限り起こらないので
(kakidasi = "a" とすると型の不一致エラーが出るぐらい)
宣言なんて適当でいいという見方もある
>>393 癖でなー。VBAだと自然にinteger使ってしまう。integer使うといかにもvba臭くて、良い。
>>386 配列数式を調べたって、最近はほとんど間違った使い方しかみないから無駄だと思う。
>>394 俺は、Access VBA もやるもんで、小数扱わないなら
Dim a As Long てな具合で長整数型(Long)だな。
368 >その変数宣言だと、unkoだけがIntegerで他が全部Variantじゃねえか Variantで、何か不具合でも?
絶対に最善手を指さないことを信条とする人いるよねぇ。
399 :
複乳 :2010/04/24(土) 00:22:15
働き出すと程々が最善という癖がつくんだよな うちの社内にも自分が納得行くまでゴミ作ってる人もいるけど
>>397 逆
全部variantで問題ないのにわざわざ1つだけintegerにするのが無駄だって話
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002(OfficeXP) 46行が1組になったデータがあります。 2行目がタイトル行で、3〜47行目に、49行目以降のデータを掻き集めています。 (46行が1組なので、2組目は48行目がタイトル行、3組目は94行目がタイトル行) データ計算は、I〜M列、N〜S列、U〜Z列の3回です。 配列数式にしたら、数値を入れるたびに関連したセルが書き換えられて 非常に時間が掛かるのと、合計値が0のときは空白にしておきたいので、 数値を入れてからマクロで計算することにしました。 一応、動作確認はできましたが、あまり綺麗な書き方ではないので、見た目に 綺麗な書き方があればご教示ください。I〜M列、N〜S列、U〜Z列は それぞれ単独で計算し、今回はI〜M列の例だけ書きます。 A = ((Range("A65536").End(xlUp).Row - 1) / 46) - 1 '組数 For j = 9 To 13 'I〜M列 For i = 3 To 47 '3〜47行 Y = 0 For k = 1 To A KK = 46 * k + i Y = Y + Cells(KK, j) Next k If Y <> 0 Then Cells(i, j) = Y Else Cells(i, j) = "" End If Next i Next j
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 SUMIF,SUMPRODUCT,複数条件 A B C 数 条件@ 条件A 1 10 ● 月 2 20 ● 火 3 30 × 火 ------------------ 4 答 ● 火 上記のようなデータで、条件@が●、かつ条件Aが火の 数の合計を出すために、答に =SUMPRODUCT((B1:B3=B4)*(C1:C3=C4)*(A1:A3)) の数式をいれたのですが、仮に条件Aはなしにする場合(月も火も●のものは合計する) これをすぐに出したい場合は、答の数式は最初の状態から組みなおすしかないのでしょうか。 (理想はC4を空欄にしたら、自動で変わるような仕組みはないでしょうか。) IFを組み合わせるとか、いろいろと考えたのですが、どなたか良い方法が ありましたらお願い致します。
403 :
368 :2010/04/24(土) 08:18:40
>>397 ,398
Variantだからダメって言うのじゃないし、VBAごときで最善なんてどうでもよい。
>>361 の書き方は、全部をIntegerにしたいのに失敗しているとしか思えないでしょ。
人に教える側の記載だから、間違わずにちゃんとした形式で書けよ、ってことだよ。
まぁ、宣言の仕様は勘違いして覚えたら面倒な事ではある。
>>402 そういう時はDSUM使えよ。
それにお前のSUMPRODUCTの使い方間違ってるぞ。
=SUMPRODUCT((B1:B3=B4)*(C1:C3=C4),A1:A3)
としないと。
お前の式は=SUM((B1:B3=B4)*(C1:C3=C4)*(A1:A3))の配列数式と同じだ。
407 :
複乳 :2010/04/24(土) 10:41:25
>>406 A4=(B4<>"")*1+MAX($A$1:A3)
D4=IF(C4<>"",VLOOKUP(E4,A:B,2,0),"")
E4=(C4<>"")*1+MAX($E$1:E3)
下にオートフィル
例文とB・D列が入れ替わるがそこはテキトーになんとかしてくれ
408 :
名無しさん@そうだ選挙にいこう :2010/04/24(土) 11:32:07
すいません、超初心者です。 エクセル2007でデータからグラフを作成しようとしたところ、軸の部分が データから正確に反映出来ません。対処方法を教えていただけないで しょうか?色々とググってみたのですが、どうにもなりません・・・(´;ω;`)ブワッ データは↓みたいな感じです 1月 10000円 2月 30000円 3月 40000円 のような単純なデータなんですが、横軸に月名は出ています。問題は縦軸で 金額が\1,\0みたいな感じになっています。どうにかお願いします。
409 :
複乳 :2010/04/24(土) 13:26:48
>>408 金額部分は書式設定で通貨を選ぶ
セルには「10000」とだけ入力
410 :
名無しさん@そうだ選挙にいこう :2010/04/24(土) 13:33:47
408です 書式設定は通貨で記入していました。どうにも原因が分からないので週明け職場にて聞いてみます。 レスありがとうございました。
411 :
402 :2010/04/24(土) 13:49:29
>>405 ありがとうございます。やっぱDSUMですかね。
DSUMだと5行目から同じように検索条件を増やしていくと
Criteriaの条件用で、項目名を1行づつ用意しないといけなくなるのでかさばるかなと・・思って躊躇してました。
Criteriaの条件用の項目名行を一つで使いまわしていくこと(Criteriaにいれる項目名と条件内容を離れた行とすること)はできないのでしょうか。。
412 :
複乳 :2010/04/24(土) 14:07:10
>>402 C5に1を入れると
>>402 通り、1以外だとC列の条件を無視する
=IF(C5=1,SUMPRODUCT((B1:B3=B4)*(C1:C3=C4)*(A1:A3)),SUMPRODUCT((B1:B3=B4)*(A1:A3)))
条件多くなるなら工夫しなきゃならんけど
>>411 DSUMの条件はフィルタオプションと同じで縦にOr、横にAndだ。
だからCriteriaの条件用の項目名行を一つで使いまわすことはできない。
ってかお前のやりたいことってピボットテーブルで出来るんじゃないのか?
414 :
名無しさん@そうだ選挙にいこう :2010/04/24(土) 14:54:44
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 勉強中 【4 VBAでの回答の可否】 ? 【5 検索キーワード 】 OfficeOnlineなど Excelの質問というよりOfficeのヘルプに関する質問なんですが、 ExcelでF1を押してヘルプを出して、検索のところで Office Online のコンテンツの中の開発者リファレンスを選んでも検索ができず、目次もダウンロード中で表示できません。 Office Online のコンテンツの中のExcelヘルプなどほかの項目や、 このコンピュータ上の のコンテンツの中の開発者リファレンスでは検索できます。 Office Online のコンテンツの開発者リファレンスを使うには何か設定があるのでしょうか?
415 :
名無しさん@そうだ選挙にいこう :2010/04/24(土) 19:27:26
autofilterに関するトグルスイッチ式のマクロについての質問です。 数年前に随分苦労して作った記憶があるのですが、・・・ 今、作るとできません。 よろしく。
416 :
複乳 :2010/04/24(土) 19:42:59
417 :
415 :2010/04/24(土) 22:17:31
418 :
名無しさん@そうだ選挙にいこう :2010/04/25(日) 02:54:15
【1 OSの種類 .】 Windowsvista 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 使えない 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 正直、何で検索していいか分かりませんOTL エクセルのファイルをユニコードテキストで出力すると 文字列に””が付いてしまいます。 この”を付けずにテキストに出力する方法を教えて下さい。
420 :
複乳 :2010/04/25(日) 12:09:26
>>418 2003だけどならないな
セルにカンマかダブルクォーテーションをいれるとなるけどそれか?
エクセル txt出力 ダブルクォーテーション でぐぐればvbaのコードなんかもあった
>>418 うちの2007(OS:WinXP)でも””は付かなかったが。
422 :
418 :2010/04/25(日) 22:05:19
どうも"付く場合と付かない場合があるようです。 最初の文字がアルファベットの大文字だったりすると TXTファイルに出力後 ”が文章の前後に付いてしまいます。
423 :
複乳 :2010/04/25(日) 22:30:15
付かなかった。寝る。
同じく付かなかった。糞しる。
425 :
複乳 :2010/04/26(月) 11:59:35
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 否 【5 検索キーワード 】エクセル リスト 新規項目 など 入力規則のリストですが、リストの設定は解除せずに リスト以外の項目も入力するにはどうすれば良いでしょうか
(;゚д゚)ァ
質問お願いします。 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 Googleやヘルプでの検索キーワード 1-21-03 1-01-15 2-45-96 1-62-35 などの数値があったとします。 この中から真ん中の文字だけを取り出したい場合(「1-21-03」の『21』)どうしたらいいでしょうか。 ご回答よろしくお願いいたします。
>>427 取り出したい数字の前に常に2文字のみで、その後ろの2文字を取得
したいという場合の簡単な関数式は、
=MID(A1,3,2)
で、対応できます。
>>427 長さが不定だと数式はMIDやFIND使うが少し面倒。
VBAの方がSplitoとかで簡単だな。
あるいは区切り位置使って2列目のデータを使うとか。
430 :
複乳 :2010/04/26(月) 13:09:08
自己解決しまんた エラーメッセージ切ればいいだけでした
427です。 ありがとうございます。 すごく助かりました。
427見て考えてたんだがワイルドカード置換ができる関数あったっけ
この場合はワイルドカードじゃなくて正規表現じゃないとかえって面倒でしょ 普通にFINDとMID並べるのと手間が変わらんくなる。 正規表現は標準では無理だけどアドインがある
そりゃ正規表現が一番だがそれならVBAでやるよw FINDやMIDを並べて作るとすごい長くて見にくいじゃない。整備しにくいのよ。 前と後と、しかも後ろのFINDには開始位置指定で前の結果の長さが必要なので実質式が3倍の量よ。 ワイルドカード置換の関数があったら、たとえば「Replaceワークシート関数+ワイルドカード機能付き」なのがあるなら それでまかなえる場面では相当コードが簡潔になると思ってね。
Excel2007って、キーカスタマイズはできないんでしょうか? ショートカットキーの割り当てを自分で設定したいんです(><)
excel2007ですが クイックアクセスツールバーに現在のブックのみに適用でマクロを登録すると 直後はちゃんと登録されてるのですが再起動すると登録内容がクリアされてしまいます これはそういうものなんでしょうか? できる方法があれば教えてほしいです。
>>436 ブックの拡張子は.xlsxかxlsmになってる?
普通に表示されるけど・・・
438 :
436 :2010/04/26(月) 17:19:53
.xlsmになってます。 普通はできるんですね。 何がおかしいんだろう?
439 :
436 :2010/04/26(月) 17:36:02
ちなみに ・マクロをすべてのドキュメントに適用 ・マクロ以外を現在のドキュメントに適用 はどちらも正常にできます。 ・マクロを現在のドキュメントに適用 だけができません。
Excelを起動しなおして新規ブックで、Macro1を作ってみてもダメ?
>>432 、
>>434 429だが、俺と同じこと考えたな。
後ろの-*を置換できりゃ簡単だもんな。
おれは試してみて関数では多分できないと思って429を書いた。
442 :
436 :2010/04/26(月) 19:38:26
>>440 新規ブックで新規マクロ作って試してみましたが駄目でした。
セキュリティはずしてダイアログなしで
マクロ有効になるようにしてもみましたが駄目でした。
同じ症状になる人はいないですよね…
>>407 返事が遅れてすみません。
無事できました。
ありがとうございました。
444 :
428 :2010/04/26(月) 20:52:28
>>427 数字の桁が増減しても大丈夫な関数式作ってみた。
=LEFT(RIGHT(A1,LEN(A1)-FIND("-",A1)),FIND("-",RIGHT(A1,LEN(A1)-FIND("-",A1)))-1)
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 エクセルで作った表をWebでうpするため、html形式で保存すると <meta http-equiv=Content-Type content="text/html; charset=shift_jis">になります。 社内のサーバでは、eucが義務化されてるためeucにエンコードするには どうすればいいでしょうか?
446 :
名無しさん@そうだ選挙にいこう :2010/04/26(月) 21:35:23
【1 OSの種類 .】 Windows xp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】ちょっとだけ 【4 VBAでの回答の可否】 可・・・ 【5 検索キーワード 】 excel データ 値段 変更 去年分から仕入れ帳を作ってます。 sheet1に 商品A 12,000 商品B 5,000 という感じで、商品台帳を作ってあり、sheet2以降はvlookup関数で 値段を読み込んで月ごとに仕入れデータを入れてました。 今年4月から、かなりの商品の値段が変更になりました。 商品台帳で値段を変更すると、以前の仕入れデータも変わってしまいます。 vlookupではダメなんでしょうが、他にどういう機能を使えば こういう対処ができるのかわかりません。 ご指導お願いいたします。
>>446 商品台帳を年度ごとに分けて作り直す。
商品台帳の設計を変えて、古い値段と新しい値段を並べる。
古い仕入れデータは数式を消して、数字が変わらないようにする。
そもそも仕入れ価格なんてのはどんどん変化するものだから、それに対応できるように設計するべきだな。
448 :
複乳 :2010/04/26(月) 21:46:26
>>446 自分だったら過去の分は値で保存するかな
じゃなきゃVBAを使い、入力する度に値段も追加入力するか
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 エクセル テーブル カラム 新 ピボット フィールド A1からI300までを一行目を見出しとしてテーブルにしてピボット作ったりしてたんだが、カラムIに一列挿入してテーブルをA1-J300にしたら新しくピボット作るときのフィールドリストに新規に追加したカラムが出てきません・・・ I1にはフィルタなどの三角は出ています。 テーブル設定をし直せばいいのかもしれないんですが、なんででないのかわからんともやもやします・・・
450 :
446 :2010/04/26(月) 22:32:47
>>447 >>448 返信ありがとうございます。
商品台帳を年度ごとに作り直すのは、年度内に2〜3回値段が
変わる商品もあるので・・・。
月ごとに値で保存しといて、台帳に古い値段と新しい値段を
並べる方法が一番いいんでしょうか?
(値段の変遷もわかるし)
商品名 新しい値段 古い値段1 古い値段2
商品A 10,000 12000 15,000
商品B 4000 5,000 6,000
横にどんどん古い値段が増えていきますが、
エクセルではもう、この方法しかないでしょうか?
自分なら商品ごとに値段と価格改定年月日のテーブルをつくって、 入力日にいちばん近い改定年月日の値段を表示するようにする
452 :
446 :2010/04/26(月) 22:49:48
>>451 さん 返信ありがとうございます。
商品台帳はこんなかんじですか?
商品名 改定日 新しい値段 改定日 古値1 改定日 古値2
商品A 4/1 10,000 3/1 12000 2/1 15,000
商品B 4/3 4000 3/5 5,000 2/15 6,000
>入力日にいちばん近い改定年月日の値段を表示するようにする
どういう関数が使えるんでしょうか?教えてください
453 :
複乳 :2010/04/26(月) 22:51:55
454 :
446 :2010/04/26(月) 22:58:45
455 :
複乳 :2010/04/26(月) 23:00:14
テーブルってのはね 横にデータ伸ばしちゃだめなんだよ 商品コード 価格改定年月日 価格 備考 でタテに伸ばす。商品コード&入力年月日をキーにして、商品コード&価格改定年月日を 超えない行の価格を引いてくるLOOKUPでどうにかなるんじゃないかな
457 :
446 :2010/04/27(火) 00:11:06
>>複乳さん、
>>456 さん
どちらでもできました。ありがとうございました!
VBAはちょっとしか知らないですが、
値段差を入れていくという考え方は新鮮でした。
これでさらに、価格改定日とできた値段差を記録していくには
、どうしたらいいのでしょう?
LOOKUP関数は、必ずデータを昇順にしとかないとダメなんですね。
商品台帳sheet1をこんな感じにして
商品コード 商品名 価格改定年月日 値段
100 商品A 2月1日 400
100 商品A 3月1日 450
100 商品A 4月1日 500
sheet2で読み込む時
=LOOKUP(B2,Sheet1!$A$2:$A$4,Sheet1!$D$2:$D$4)
と入れたら、最新の金額500円が入りました。
これで合ってるでしょうか?
458 :
名無しさん@そうだ選挙にいこう :2010/04/27(火) 00:13:42
【1 OSの種類 .】 Windows Vista
【2 Excelのバージョン 】 Excel2007
【3 VBAが使えるか .】いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 excel vlookup 複数条件、excel dget
下表のような、各部署ごとに使用しているファイル容量を拡張子別に示した表があったとします。
ここで、「人事部が使っているxls」の容量を書き出したい場合、どんなEXCEL関数を使うのがいいでしょうか?
vlookupは複数条件には使えないし、DGET関数を使おうと思いましたが、どうもうまくいきません…
アドバイスをお願いします。
※可能であれば、添付のZIPのようなことをやりたいので、
直接みてアドバイスしてもらえると大変助かります。
【表】
部署 拡張子 容量(GB)
人事部 xls 1
技術部 ppt 3
総務部 xls 5
法務部 doc 7
技術部 xls 8
法務部 ppt 11
人事部 ppt 20
【アップ先URL】
ttp://77c.org/upload.php 【ファイル名】
nk13990.zip
【パスワード】
0427
>>427 おそいけど、IPアドレスのオクテットを抽出するときにやってる方法を流用
A1 に 1-21-03 とあったら、
=MID(A1,SEARCH("-",A1,1)+1,SEARCH("-",A1,SEARCH("-",A1,1)+1)-SEARCH("-",A1,1)-1)
こんな糞長い関数を組む。
460 :
446 :2010/04/27(火) 00:40:14
>>複乳さん 価格改定日とできた値段差を記録していくには 、どうしたらいいのでしょう? できてました。すみませんでした、ありがとうございました!
>>458 条件が複数あると簡単には検索できなくなるので、作業列に部署と拡張子を連結したデータを入れてしまって
そこから検索するのが一番早い
単に人間が目で見て確認したいだけならオートフィルタ
462 :
名無しさん@そうだ選挙にいこう :2010/04/27(火) 00:46:13
>>458 DGET系関数は =DGET(元の表,取り出すデータ名,検索条件の表) といった感じで使います
表は見出し行を含みます
2007ならSUMIFS,COUNTIFSなんかもあります
463 :
名無しさん@そうだ選挙にいこう :2010/04/27(火) 01:00:55
>>461 >>462 わかりました。
セルを結合させて検索させてみます。
アドバイスありがとうございました。
>>458 並び順が違うけどまんまピボットテーブルじゃないか。
並び順も同じにしようと思えばできるけどな。
>>458 よく見たらファイル区分にその他があるのか。
Ctrlを押しながらクリックしてグループ化すればいい。
466 :
名無しさん@そうだ選挙にいこう :2010/04/27(火) 12:11:20
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 独学で勉強中
【4 VBAでの回答の可否】 可
エクセルデータ
http://www1.puny.jp/uploader/download/1272336967.xls パス 0000
マクロを動かすと実行時エラー1004 RangeクラスのSelectメソッドが失敗しました。
になります、確認するとRange("A6").Selectがエラーの原因になってるようなのですが
さっぱり解りません・・どなたか原因を調べてもらえませんでしょうか?お願い致します
467 :
複乳 :2010/04/27(火) 12:23:04
>>466 sheetに記述すると別シートの内容はさわれなくなる
標準モジュールに書いてcallで呼び出す
以下sheet2
Private Sub CommandButton1_Click()
Call sex
End Sub
以下標準モジュ−ル(頭の一行変えただけ)
Sub sex()
Dim 品名 As String
Dim 個数 As String
Dim サイズ As String
Sheets("Sheet1").Select
Range("A6").Select
---略---
End If
ActiveCell.Offset(1, 0).Select
Loop
End Sub
>>466 その場合はシートの指定が必要
ActiveSheet.Range("A6").Select
とか
Worksheets("Sheet1").Range("A6").Select
にする
469 :
466 :2010/04/27(火) 13:46:23
>>647 ありがとうございました
今回は
>>468 さんの方法をとりましたが
勉強になりました
>>468 ありがとうございました
何とか動きました
また何かあったら宜しくお願いします。
470 :
名無しさん@そうだ選挙にいこう :2010/04/27(火) 15:05:25
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 会社の経理の人に聞かれたものの、私には?? 例えばセル内に「3/6-10/29」と入力すれば表示は「3月6日〜10月29日」という ように変えることは出来ますか? 書式設定のユーザー定義をいじってみたものの分かりません。 よろしくお願いします。
472 :
複乳 :2010/04/27(火) 15:24:33
>>470 書式設定では無理。やり方は二通り
a1に「3/6-10/29」入力した後
=TEXT(LEFT(A1,FIND("-",A1)-1),"m月d日")&"〜"&TEXT(RIGHT(A1,LEN(A1)-FIND("-",A1)),"m月d日")
A1に「3/6」B1に「10/29」のあと
=TEXT(A1,"m月d日")&"〜"&TEXT(B1,"m月d日")
473 :
名無しさん@そうだ選挙にいこう :2010/04/27(火) 17:03:07
>>436 Excelのアップデートをすれば治りそうな気もするけど・・・
マクロ1個とマクロ以外のもの1個を現在のドキュメントのみに適用させて
保存したあと、ブックの拡張子をXLSM から ZIP に変えて
その中のuserCustomizationフォルダにあるcustomUI.xmlのソースを見ると
<mso:qat> 〜</mso:qat> の中にクイックアクセスツールバーの設定が記録されている。
例えばクイック印刷を追加していれば
<mso:control idQ="mso:FilePrintQuick" visible="true"/>
マクロ(Macro1)を追加していれば
<mso:button idQ="doc:Macro1_1" visible="true" label="Macro1" onAction="Macro1" imageMso="ListMacros"/>
これを確認すれば、保存時の問題なのかロード時の問題なのかはハッキリする。
ついでに、マクロの記述がなければメモ帳等でxmlに↑のマクロ記述を追加して
拡張子戻して開いてみる。(出てるかな?)
再び保存して閉じてもう一度開く(消えたかな?)
ここまで自力で調べた上で、マイクロソフトかこのスレの詳しい人に聞いてみるといいかも。
Excelのバージョン情報も忘れずに。
475 :
?? :2010/04/27(火) 19:52:35
今XPにインストールしてあるExcel2007を先日買ったWindows7 64bit搭載 ノートPCにもインストールしようと思ったんですが、XPについてきた インストールCDをなくしてしまいできません。 CDなしでExcel2007やWord2007をノートPCへコピーすることはできないんで しょうか?
>>475 パソコン本体に付属のOfficeはそのパソコン専用。
ほかのパソコンに入れるのは違反。
>>475 > ノートPC"にも"
CDあっても無理
誰でも答えられる良質問ですね
Excel2000です。 リストボックスから選択して値を入れた際に自動で背景色を付けたいのですが、どうすればいいでしょうか? ググると条件付き書式が多く出ますが3つまでしか設定できないようで困ってしまいました。色は7色です。
481 :
名無しさん@そうだ選挙にいこう :2010/04/27(火) 20:52:41
>>480 2007に買い換えるか、マクロを使うか
>>481 おわた…orz
ありがとうございます。
483 :
名無しさん@そうだ選挙にいこう :2010/04/27(火) 21:16:47
484 :
436 :2010/04/27(火) 21:36:49
>>474 レスありがとうございます。
書いてあるとおりにやってみたら保存はされてるみたいなのでロード時の問題ですかね?
以下<mso:qat>タグの中だけコピぺします。
<mso:documentControls><mso:button idQ="doc:C:_Documents_and_Settings_***_デスクトップ_Book1.xlsm_Macro1_1"
visible="true" label="Macro1" onAction="C:\Documents and Settings\***\デスクトップ\Book1.xlsm!Macro1"
imageMso="ListMacros"/></mso:documentControls>
これを起動してもツールバーには表示されません。
バージョンは2007 (12.0.6524.5003) SP2 MSO (12.0.6529.5000)です
わかる方いらっしゃったらお願いします。
>>484 マクロの指定に絶対パスが入ってるから、xmlがそこを参照しに行って
エラーになってる希ガス・・・
マクロ以外だけだったらok、マクロ+他のだったら、他のものも表示されなくない?
どうしてパスが入っちゃってるんだろう
自分の場合、他のブックのマクロを参照しても絶対パスは出ないんだけど(ブック名!マクロ名)
EXCELの環境設定かもしれないですね。
EXCELに詳しい人、マクロを参照したときにパスが出ない方法がわかったら
教えてください。おねがいします。
486 :
445 :2010/04/28(水) 01:06:57
445です。どなたか分りませんか?
>>486 Excel単独では難しいと思う。
ファイル数が少ない場合は、一度IEで開いてから「名前を付けて保存」でEUC形式を選べば、
文字コードとタグの両方が自動で修正される。
大量にある場合は文字コードを変換するフリーウェアとタグを置き換えるフリーウェアを組み合わせる。
これらのフリーウェアをVBAから呼び出して自動化する方法もよく使われる。
マクロが使えるテキストエディタで文字コードとタグを一度に変換するという手もある。
488 :
名無しさん@そうだ選挙にいこう :2010/04/28(水) 11:48:39
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 exec チェックボックス チェックボックスをONの状態で表示する事は出来ますが、変更出来ないようにする事は出来ますか?
489 :
名無しさん@そうだ選挙にいこう :2010/04/28(水) 12:27:23
すいません。 エクセル2007で、別のシートの数字をオートSUMで適用させるには どうしたらいいですか? 具体的には シート1にある 1〜6月の合計数字と シート2にある 7〜12月の合計数字を足したものを シート2に総合計として出したいのです。 尚、シート1に1〜12月までのすべてを記述するのは 見やすさ的に厳しいのがあるので無理です。
>489 Σ→シート1の1〜6月ドラッグ→「,」→シート2の7〜12月ドラッグ→「Enter」
特定のパソコン、特定のExcelのファイルで保存が出来なくなります。 特定ですから、別のパソコンや別のExcelファイルでは保存は出来ます。一応マクロを使っているのですが、そのマクロを使った別のExcelファイルであれば保存できます。 原因が分からないのですが、どなたかご教授ください。 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 excel2000 保存できない
492 :
複乳 :2010/04/28(水) 17:23:56
>>488 右クリックぷろぱちぃのEnabledをFALSE
>>489 串刺し計算とか。
=SUM(Sheet1:Sheet3!A1)
これでシート1から3のA1の合計。但し同じセルじゃないとダメ
>>491 LAN上にあるならフォルダ、ファイルの権限とか
この質問は原因が多い
解決策としては、新しいブック作ってシートコピー
493 :
名無しさん@そうだ選挙にいこう :2010/04/28(水) 17:54:14
>>490 すまん。できません。
具体的には
例えばシート1のT3にある合計数字と、シート2のT3にある合計数字を
シート2のW3に総合計として出したいんです。
>493 オートSUMというから… シート2のW3に =Sheet1!T3+T3
>>493 Sheet2のW3へ
=SUM(Sheet1!T3,T3)
でもおk。
>複乳
Sheet3は対象外ぜよ。
497 :
445 :2010/04/28(水) 22:14:38
>>487 ありがとうございます。
マクロは分らないので、IEで開いて保存することにしました。
どこのスレで聞けばいいのかわからなかったのですが、とにかく聞きたいです。 大学でのレポートを書くために、Excelやpowerpointを使えるようになりたいんですが、勉強するための何かいい本やサイトはありますかね? おすすめがあれば教えてください。 超初心者です。よろしくお願いします。
2ちゃんでえぇやん
>>499 今はセルに数字を打ち込むことくらいしかできないので、一通りのことを学べる本なんかないですかね?
やる気と覚える気があればどの本でもHPでもある程度のレベルまでは到達する
502 :
名無しさん@そうだ選挙にいこう :2010/04/28(水) 22:42:18
ダイソーのパソコン書籍は1冊105円(税込)でいろいろあります。(パワポはなし、ExcelとWord) 入門編と中級編とあります。
やる気はあるんですが、昔から要領が悪いので効率よく勉強したいです。 なるべくとっつきやすくて、説明だけでなく具体的な例題なども載っているものがいいんですが。 ダイソーの本も安くて興味あります。今度見てみます。
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━ 【1 OSの種類 .】 Windows** 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 入力規則でリストからドロップダウンで選択する際に、空白を選べるようにするにはどうすればいいですか? 「元の値」欄に「A, ,B」とやっても「A」と「B」しか選べません。 セル参照でやるしかないでしょうか?
505 :
複乳 :2010/04/28(水) 23:38:40
>>503 それをやる気が無いという。
言い訳を作って怠けてるだけ、学問に王道無し
というと説教くさいので補足すると、エクセルの用途はかなり多岐に渡るので
その用途が分からないと効率のいい方法なんて教えようがない
資格が欲しいなら「エクセル 資格」と書いた本を買えばいいし、
自営業なら本じゃなくテンプレートをサイトで落とせばいい
目的なく覚えたい?エクセルコーナーの平積みになっていて、壁から一番離れてるものを「購入」して書いてある通りに操作する
それだけで身につく。
ちなみに俺は事務7年ほどやっているがグラフをまともに作ったことが無い。
>>504 >>425 >>430 入力規則の右の右のタブのエラーメッセージ。無効な〜をオフ
質問です どうしたら良いものなのか考え疲れました… 下記のように6回目までの偶数、奇数の 全パターンをexcelで作りたいのですがどうすればいいのでしょうか 手入力では、どこかで間違えそうで正確さに欠ける上、時間がかかりすぎます 1回目 2回目 3回目 4回目 5回目 6回目 偶数 偶数 偶数 偶数 偶数 奇数 偶数 偶数 偶数 偶数 奇数 偶数 ・ ・ 偶数 奇数 偶数 奇数 偶数 奇数 ・ ・ 偶数 偶数 偶数 偶数 偶数 偶数
>>506 意味がわからないからエクセルファイルごとULしてくれるかもう少しわかりやすい説明をしてくれ
>>506 A1に =(MOD(ROW(A1)-1,2^COLUMN(A1))<2^(COLUMN(A1)-1))*1
これをコピーしてA1:F64に貼り付け
ってことであってる?
509 :
複乳 :2010/04/29(木) 00:44:34
>>507 説明べたですみませんでした・・・
>>508 >>509 こういうのをひょいっと作れるのが本当にうらやましいです…
非常に助かったのですが、落ち込みました
ありがとうございました
教えてください。お願いします。 dcountなどの関数で、 「列」という範囲名で指定した、列方向の(たとえばd列〜f列まで全部)範囲 、 「行}という範囲名で指定した、行方向の(たとえば、10行〜20行まで全部)範囲 この二つの交差した部分(D10..F20)を検索の対象にしたいとき、 二つの範囲名の間に、何か演算記号を用いて、 重なりの部分を指定することはできませんか。 教えてください。 お願いします。
512 :
511 :2010/04/29(木) 02:07:19
【1 OSの種類 .】 Windows** 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】いいえ 申し遅れました。
513 :
複乳 :2010/04/29(木) 10:32:30
>>511 半角スペース(そういやこの演算子の名前シランな)
例えば=SUM(A:B B:C) でB列全部をsumの対象にできる
=SUM(2:2 B:C) 列と行でもオッケー
積集合演算子、とでも呼べばいいのかな つか勉強になった。そんな指定が可能だったとは。
516 :
名無しさん@そうだ選挙にいこう :2010/04/29(木) 15:03:33
くだらないこと教えてください 関数式でCOUNTOTIFをダブル合成で使用しているのですが 双方(countif)の条件を満たした場合にIF関数が適用されるようにするにはどうしたらいいのでしょうか? 下記のやりかただとなんか違う答えになっちゃうんですよね =IF(COUNTIF(B2:G2,"1")*COUNTIF(G2,"2"),"●","○")
式をもう一度見直せ
>>516 COUNTIFは条件を満たすセルがいくつあるか数える関数
条件を満たすかどうかだけを調べるのはIF関数
=IF(AND(条件1,条件2),"●","○")
>>517 ,518
ありがとうございます!できました!
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 次のようなFor文で回数が3のとき、Rにはそれぞれ"84:93"、"107:116"、 "130:139"と入れるにはどう書けばいいですか? For i = 1 To 回数 'R = "(i * 23 + 61) : (i * 23 + 61)+10" Rows(R).EntireRow.Hidden = True '84-93 107-116 130-139 Next
521 :
520 :2010/04/29(木) 16:03:29
自己解決しました。
522 :
511 :2010/04/29(木) 21:31:18
>513 へぇ〜 半角スペースですか! アンダースコアとかいろいろ試したんですが・・・意外です。 ありがとうございます。 「513さんに、感謝します!!」((清志郎風に、言ってみる)
523 :
511 :2010/04/30(金) 02:47:20
>515 今日は手元にエクセル入りのパソコンがなかったため、oooのカルクで、「参照演算子」を 手がかりに、ヘルプを開き、確認をしました。 すると、エクセルの「半角スペース」の代わりに「!」を「演算子」として用いればよいことがわかりました。 簡単な表を組んで、試してみると期待通りの結果を得ることができました。 ご助言を下さった皆様ありがとうございます。ちょっと・・・・・否、ソートーうれしいです!
525 :
名無しさん@そうだ選挙にいこう :2010/04/30(金) 12:03:53
【1 OSの種類 .】 WindowsVista 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 excel オートフィルタ リスト範囲 変化 オートフィルタ抽出 結果 変わる etc 質問させて下さい。 以下の様な表にて、氏名のオートフィルタでA氏を選択すると、 最初は空白以下のところに「3」しか表示されず、 その後一度フィルタ解除(全て選択)しもう一度同じA氏を選択すると、 今度は空白以下に「2」と「3」が表示され、繰り返す毎に空白以下の 表示結果が違ってくる状態なのですが、原因解る方いますか…? 【表】 AM/PM 氏名 項目 AM A氏 出勤 PM A氏 外回り 〜〜〜〜(中間略)〜〜〜〜 空白行 1 2 3
527 :
526 :2010/04/30(金) 23:11:03
図がずれましたのでもう一度書きます。 【表】 AM/PM 氏名 項目 AM A氏 出勤 PM A氏 外回り 〜〜〜〜(中間略)〜〜〜〜 空白行 1 2 3
l;/l;/;l
529 :
複乳 :2010/04/30(金) 23:38:23
>>526 オートフィルタはバグが多いらしい
あと空白行をはさむと別テーブルになるから、避けた方が良い
530 :
526 :2010/05/01(土) 00:47:06
>529 そうなんですね… 何をやってもうまくいかなかったので、空白にダミー文字入れて対応させました。 ご返信頂き有難うございます。
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 excel 範囲 判定 条件 順位 グループ 所属 0超えから10以下 3 10超えから10以下 6 20超えから30以下 7 30超えから40以下 8 40超えから50以下 10 60超え 12 このように段階毎に数値が決められていてこの数値と掛けあわせたいのです。 例えば25という数字が上記のどこに含まれるかをifで条件式を書くと入れ子が激しく見難い式になってしまいます。 実際には200以上まであるのでif入れ子では大変だなと思いまして、こういう判定に向いてる関数はないものでしょうか? お休み中のところすみませんが、どなたかどうぞ宜しくお願いします。
532 :
名無しさん@そうだ選挙にいこう :2010/05/01(土) 09:17:16
あげるのを忘れました宜しくお願いします。
50超えから60以下は11?
534 :
名無しさん@そうだ選挙にいこう :2010/05/01(土) 09:22:38
あえて見苦しい式作った。 =IF(A1="","",IF(A1>60,12,IF(A1>50,11,IF(A1>40,10,IF(A1>30,8,IF(A1>20,7,IF(A1>10,6,3))))))) w
>>531 VLOOKUPでもできるがLOOKUPのほうが簡単。
列番号と検索の型TRUEを書く必要なし。
=LOOKUP(検索値,リスト)でよい
リストは2列の対応表を作ればよい。
537 :
名無しさん@そうだ選挙にいこう :2010/05/01(土) 13:25:36
538 :
名無しさん@そうだ選挙にいこう :2010/05/01(土) 15:29:01
>>536 すみませんです。
出来ると思い込んで動かしたら、「超え〜以下」の判定が「以上未満」になっていることに気付きましたです。
lookupの「以上未満」動作を「超え〜以下」に変えるには知恵が要りますね。
また、検索値がマイナスを取るときに#N/Aというエラーになってしまいました。
>>531 の例文が間違っていました。
10以下 3
10超えから20以下 6
20超えから30以下 7
30超えから40以下 8
40超えから50以下 10
50超え 12
こうでした。lookupで作ると検索値が50なのに12が返されてしまったり、-10に対して#N/Aになってしまいます。
関数は教えてもらったので本当は後は自分でやるべきなのですが。
なかなか解決策を思いつけずにいます。
539 :
名無しさん@そうだ選挙にいこう :2010/05/01(土) 15:55:31
>>538 自分だったら↓こうやりそうだけど、もっといい方法あるかな
=-(10^10) 3
=10+0.1^10 6
=20+0.1^10 7
>>539 なるほど、作業列を一つ作り、そこに+0.1^10のようにすることで、実質超え〜以下を実装するわけですね。
もしくは見た目は小数点以下切捨てにしておけば・・・
凄いです。
全然思いつかなかったです。
ありがとうございました。
>>538 数値が1000程度なら1-1000まで対応するテーブルをつくれば確実
>>541 検索値は無限なのです。
分類は1000も行きませんが。
であれば、横に式の入ったセルを伸ばすのがいいんじゃないかね A列に値がはいってるとしたら、B列に10以下だったら3が入る式、 C列に10超20以下だったら6が入る式って具合に
545 :
544 :2010/05/01(土) 20:24:05
ごめん よく読んでなかった。 わすれてくれ
>538 配列に参照値が使えないので、予めMAX(A1:A65536)を求めておいて ↓のMAXと置き換える。 =INDEX({12,10,8,7,6,3},MATCH(A1,{MAX,50,40,30,20,10},-1))
547 :
名無しさん@そうだ選挙にいこう :2010/05/02(日) 15:27:05
【1 OSの種類 .】 Windows vista 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 ハイパーリンク 画像 ハイパーリンクで画像ファイル(jpg)をリンクさせたのですが ファイルがInternetExplorerで開いてしまいます Windowsフォトギャラリーでファイルを開かせるにはどうすればいいのでしょうか
548 :
名無しさん@そうだ選挙にいこう :2010/05/02(日) 15:50:54
ファイルを開くプログラムであらかじめ指定しておけばいいんじゃね?
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 このような表で、オートフィルタで実績を抽出すると機種名のD601、D301、 D303が消えてしまします。機種名を全て表示させておく方法がありますか? ジャンル 機種名 項目 計/実 4月 5月 6月 カメラ D601 ソフト 計画 5,000 6,200 7,100 D602 実績 電気 計画 200 300 200 実績 機構 計画 120 150 300 実績 D301 ソフト 計画 4,200 3,300 2,000 D302 実績 D303 電気 計画 200 300 200 実績 機構 計画 150 220 180 実績
550 :
名無しさん@そうだ選挙にいこう :2010/05/03(月) 15:34:47
>>549 わけわかんない表だね(´・ω・`)
D601の実績行がないくせに、表示させておきたいの?
エクセルの表は見た目重視ではなく、操作性重視にしないと余計な苦労をする。
551 :
名無しさん@そうだ選挙にいこう :2010/05/03(月) 16:12:53
>>549 機種名を書いた複数のセルを結合し、それぞれAlt+Enterで改行しておけば
オートフィルタでも行の非表示でも表示させおけるぞ
>>550 わけわかんないなら答えるなよwwww
想像力もない愚かさを披露しなくてもいいぞwww
>>549 Excelでデータ処理をするには、それに適した配列にしなくてはならない。
具体的には、このようにすべてのデータを「縦一列」に並べ、
項目のところにも空白ができないように、同じ項目名を何度も並べる。
これを「データの正規化」といって、データ整理の基本中の基本になる。
見やすいように一覧表にする作業はまた別の仕事として切り離して考える。
ジャンル 機種名 項目 計/実 月 データ
カメラ D601 ソフト 計画 4月 5,000
カメラ D601 ソフト 計画 5月 6,200
カメラ D601 ソフト 計画 6月 7,100
カメラ D602 ソフト 実績 4月
カメラ D602 ソフト 実績 5月
カメラ D602 ソフト 実績 6月
カメラ D602 電気 計画 4月 200
カメラ D602 電気 計画 5月 300
カメラ D602 電気 計画 6月 200
552だと、オートフィルターで「実績」を選んだらD602しか選べないんだが? つーか、まぁいいや
554 :
549 :2010/05/03(月) 20:49:09
>>550 罫線を引いてみました。
複数の機種に投資計画が組まれてて、オートフィルタで実績を選ぶと
これらの機種に対する各実績を表示させたいんです。
上層部から与えられた書式なので変えられません。
┌────┬────┬───┬───┬───┬───┬───┬─
│ジャンル..│機種名 │項目 │ 計/実 │ 4月...│ 5月...│ 6月 │
├────┼────┼───┼───┼───┼───┼───┼─
│カメラ │ D601 │ソフト. │計画 │ 5,000│ 6,200.│ 7,100.│
│ │ D602 │ ├───┼───┼───┼───┼─
│ │ │ │実績 │ │ │ │
│ │ ├───┼───┼───┼───┼───┼─
│ │ │電気 │計画 │ 200.│ 300.│ 200.│
│ │ │ ├───┼───┼───┼───┼─
│ │ │ │実績 │ │ │ │
│ │ ├───┼───┼───┼───┼───┼─
│ │ │機構 │計画 │ 120.│ 150.│ 300.│
│ │ │ ├───┼───┼───┼───┼─
│ │ │ │実績 │ │ │ │
├────┼────┼───┼───┼───┼───┼───┼─
>>551 セルを結合すると、機種名でD602とかD303が抽出できなくなってしまいます。
>>552 すみません。論外です。
“549で書いた表” で、オートフィルタで実績を抽出(ry です。
私の質問は、データ処理うんぬんではありません。
不可能です。根本的に表をつくりかえるしかありません。
>>554 >論外です。
と言われてもエクセルの仕様だからあきらめな
>>552 の書いた表が基本というか最終形というか、これしかない、というか。
見た目に拘るのなら、抽出その他は諦める。
>>556 552の表が基本というならともかく、最終形じゃないでしょ?
バカなの?
558 :
複乳 :2010/05/03(月) 21:58:15
>>549 >>552 が正しい。が、ソフトのの出力形式によりそうでない場合もあるだろうから
>>554 のH2に↓を入れて下にオートフィルタ。3月まであると思うが、H列というのは適宜変えてくれ
H2=IF(B2="",H1,B2)
あとそのソフトに言ってこういう形式で出力できるよう頼んだ方がいいぞ
上司が勝手に作ったのもなら従うしかないけどな
559 :
複乳 :2010/05/03(月) 22:24:10
>>558 >ソフトのの
なにこいつきめえしねwwwww
マクロ屋の俺がVBAで抽出マクロ作ってやる フォーム1個とモジュール1個のセット価格で今なら2万円にサービスだ
あらお安い
>>554 何度か言われてるみたいだが、笑わせてもらったので書いとく。
「Excel の仕様で、そのやりたい事を実行する方法が無い」
「やるなら抽出するキーワードの行に表示したいモンを書け」
「その仕様を満たすマクロなら有償でつくるぞ」と親切に回答してもらってるんだ。
ありがとうの一言くらい書いておけよ。
代替方法まで書いてもらってるのに、論外ってw
563 :
複乳 :2010/05/03(月) 23:49:37
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 グラフほとんどいじったことないのですが、 仕事で急遽作る必要ができましたのでみなさん教えてください。 初歩的な質問かと思いますが。 。。。。A商品 B商品 C商品 D商品 1日。。10。。41。。22。。15 2日。。25。。11。。45。。74 3日。。12。。25。。12。。22 4日。。26。。11。。36。。55 。。。。。 30日。。16。。33。。46。。54 このような表から、日付ごとの商品売上の比較をしたいのですが、 A商品とB商品の比較をするグラフはすぐできました。 これとは別に、日付を入れたままC商品とD商品の比較をする 棒グラフはどうやって作るのでしょうか?
565 :
名無しさん@そうだ選挙にいこう :2010/05/04(火) 07:51:48
日にちの列と、C商品、D商品の列を選択して、グラフを作成すればOK
>>564 キーボードのCtrlキーを押したままにすれば、
マウスのボタンを離しても選択が解除されないから、離れたセルが選択できるよ
>>565-566 564ですがありがとうございました。
そういやCtrlで範囲指定できるんでしたね。
初歩的すぎてお恥ずかしい。。。
おかげでうまくできました☆
2007について質問です 貼り付け時の設定が「元の書式を保持」がデフォになっていて 毎回貼り付けのオプションから「貼り付け先の書式に合わせる」に変更していて これが非常に煩わしいのでデフォを「貼り付け先の書式に合わせる」か 直前に選択した設定が次回にも引き継がれるようにしたいのですが可能でしょうか? 設定の仕方をご存じの方おられたら宜しくお願いします
【1 OSの種類 】 Windows Vista 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか 】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 フィル 連続データ A1とA2、A3とA4、A5とA6がそれぞれ結合されているセルに =B1、=B2、=B3という式を設定したいのですが、 フィルの連続データでは=B1、=B3、=B5となってしまいます。 良い方法を教えて下さい
すいませんテンプレ忘れてました。。。再投稿です 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 2007について質問です 貼り付け時の設定が「元の書式を保持」がデフォになっていて 毎回貼り付けのオプションから「貼り付け先の書式に合わせる」に変更していて これが非常に煩わしいのでデフォを「貼り付け先の書式に合わせる」か 直前に選択した設定が次回にも引き継がれるようにしたいのですが可能でしょうか? 設定の仕方をご存じの方おられたら宜しくお願いします
>>569 564ですが今回は回答者で。
A1=INDIRECT("B"&(ROW()+1)/2)
【1 OSの種類 .】 Windows xp SP3 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 2〜3ヶ月前ぐらいからファイルを開くと閉じたときと違う大きさで開き サイズを変えようとしても変わりません。移動も出来ません。 一度最小化して戻すと動きます。 アンインストールしてレジキーも削除してインストールし直すと 最初はいいのですがすぐに元に戻ります。 どなたか救いの手を・・・
573 :
名無しさん@そうだ選挙にいこう :2010/05/06(木) 18:05:50
【1 OSの種類 .】 vista 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 G H 1 2 2 3 4 1 7 1 3 5 8 というような、Gには確実に文字列が入り、Hには入っている場合と入って無い場合があります。 この場合、Hが空白ならGをHに入れる、という方法はありませんでしょうか?
574 :
名無しさん@そうだ選挙にいこう :2010/05/06(木) 19:23:34
お願いします。 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 SUMPRODUCT A B 1 あ 100 2 い 200 3 う 300 上記のような表で、以下のようにしても0と表示されます。 =SUMPRODUCT(A1:A3="い") 1という結果が表示されてほしいのですが、どこが間違って いるのでしょうか。「い」の前後に空白などはありませんで した。 ちなみに、下記の式では600と正しい結果が返ります。 =SUMPRODUCT(B1:B3) よろしくお願いします。
>>574 ごめん、何をしたいのか分からない
なんでSUMPRODUCTなんか使っているの?
もしかして件数ならcountif
というか、SUMPRODUCTはたぶん574にはまだ使いこなせない関数
576 :
名無しさん@そうだ選挙にいこう :2010/05/06(木) 19:43:40
>>573 一番簡単にするのは
I列とかに =IF(H1="",G1,H1) として下までドラッグ
I列をコピーしてG列選択後、形式を選択して貼付けで「値」にしてOK
>>574 本当はこんな使い方をする関数じゃないんだが、とりあえず「い」の数を出すなら
=SUMPRODUCT((A1:A3="い")*1)
正解は
=COUNTIF(A1:A3,"い")
578 :
名無しさん@そうだ選挙にいこう :2010/05/06(木) 20:10:11
>>575 >>576 ありがとうございます。
本当はもっと大きい表で複雑な条件なのですが、うまくいかないので
小さくしていきました。
「*1」を加えたら予定どおりカウントできました。ありがとうございます。
しかし、なぜ「*1」が必要なのでしょうか?
579 :
名無しさん@そうだ選挙にいこう :2010/05/06(木) 20:13:28
>>578 (A1:A3="い") で出てくる配列は 「false;true:false」
これに1をかけると「0;1;0」
これを足すから1になる。
580 :
名無しさん@そうだ選挙にいこう :2010/05/06(木) 20:17:26
581 :
名無しさん@そうだ選挙にいこう :2010/05/06(木) 20:25:53
SUMPRODUCTが出てきたのでついてに質問します。 @=SUMPRODUCT((A1:A10="りんご")*(B1:B10="A商店")*C1:C10) A=SUMPRODUCT((A1:A10="りんご")*(B1:B10="A商店"),C1:C10) は同じですよね? 個人的に@はあんまりSUMPRODUCT的な感じがしませんが・・・
583 :
名無しさん@そうだ選挙にいこう :2010/05/06(木) 20:55:08
>>582 Cの列に文字列を入れてみると違いが分かるかも
たとえば
A列 B列 C列
りんご A商店 100
ばなな B商店 ×
ってやってごらん。結果が違うよ
582ですが。。。 ほんとだ、なんで違うんだろう。
配列の条件式で*とか+とか使ってみると、 ANDが「論理積」、ORが「論理和」と言われる理由がよく分かるよね。
586 :
複乳 :2010/05/06(木) 22:31:14
>>586 ありがとうございます。
OSですかー、ディスクエラーチェックしてもだめでした。
キャドや他のソフトのセットアップやカスタマイズを考えると
気が遠くなりそう・・・
589 :
名無しさん@そうだ選挙にいこう :2010/05/08(土) 01:18:03
会社で使ってるExcelファイルで、シートが100個くらいあるのがあるのですが、 このシートのシート名だけを抽出する方法はありませんか? どこか、例えば先頭シートのA1〜A100のセルにシート名100個を入れたい。
590 :
複乳 :2010/05/08(土) 01:28:09
おおやっとアク禁解除だ
>>589 VBA。
Option Explicit
Sub fuku()
On Error Resume Next
Dim i
For i = 1 To 100
Cells(i, 1).Value = Sheets(i).Name
Next
End Sub
>>590 それじゃダメ
Sub a()
Sheets(1).Activate
Range("A1").Select
For Each s In Sheets
Selection = s.Name
Selection.Offset(1, 0).Select
Next
End Sub
592 :
名無しさん@そうだ選挙にいこう :2010/05/08(土) 06:37:54
>>591 を添削してあげよう。
グラフシートなども書き出す時は
Sub a()
Dim c As Range
Dim sh As Variant
Set c = Worksheets(1).Range("a1")
For Each sh In Sheets
c.Value = sh.Name
Set c = c.Offset(1)
Next
End Sub
ワークシートのみ書き出しの場合は
Sub a()
Dim c As Range
Dim sh As Worksheet
Set c = Worksheets(1).Range("a1")
For Each sh In Worksheets
c.Value = sh.Name
Set c = c.Offset(1)
Next
End Sub
おっとっと、俺が添削されるなw 最初のはDim sh As Objectだったな。
>588 ありがとうございます。 やってみましたがだめでした。 しばらく様子を見ます・・・
596 :
複乳 :2010/05/08(土) 10:35:41
>>595 さっさと再インストールした方がいいと思うが・・
多分エクスプローラ側の問題
>サイズの記憶方法はIEのウインドウを1つだけ表示し、記憶させたいサイズにしたあと、「ctrl」キーを押しながら、「×」マークの閉じるボタンを押すだけです。
これエクセルにも使えるのかな
VBA初心者です。 For文に使う変数は、どの本を読んでも For i = 1 To 10 みたいに "i" が使われてます。 なぜ "A" とか "a" ではないのでしょうか?
598 :
589 :2010/05/08(土) 15:33:46
599 :
名無しさん@そうだ選挙にいこう :2010/05/08(土) 15:34:56
>>597 結論、iでもaでもなんでもよい
iがよく使われるのは慣例。
由来はinteger(英語で整数の意味)から
indexの"i"かと思ってた・・・_| ̄|○
>>597 for文には虚数も入力できるから、xやyを置くよりはiのほうがいいかなって感じ
>>596 ありがとうございます。
やっぱりだめでした・・・
昔FORTRANというコンピューター言語があって、変数名の頭文字がIだと自動的にINTEGER型になった。 だからFORの変数には何も考えずにIを使うのが習慣だった。
ヤーッ、ホーッ、FORTRAN、RAN、RAN
数学の行列の表記で添え字にi, jを使用する。 その慣例ってどこかで聞いた。
A2からG2までのセルで数値を入力し、空白の前のセルの数値を返すような関数は ありますか?COUNTA、INDEXを使ったのですが上手く行きませんでした。
607 :
名無しさん@そうだ選挙にいこう :2010/05/08(土) 16:58:16
途中に空白が無いならこんな感じ =INDEX(A2:G2,MATCH(MIN(A2:G2)-1,A2:G2,-1))
>>599 なるほど、解説ありがd!!
VBAの本にも一言添えてあればいいのにね。
610 :
名無しさん@そうだ選挙にいこう :2010/05/08(土) 18:16:20
>>606 こういうこと?
=LOOKUP(10^10,A2:G2)
G2が空白であればH2を返す
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 VBAのイベントについて教えてください。 ブックを開けたときにsheet1のA2セルを選択するようにしたいのですが、 Private Sub Worksheet_Activate() では思った結果になりません。 sheet2を選択した後でsheet1を選択すると、A2セルがActivateになります。 ブックを開けたときはsheet1が選択されているのですが、 こういうのはWorksheet activateとして扱われないのでしょうか?
613 :
複乳 :2010/05/08(土) 23:01:20
>>612 bookを開いたときはWorkbook_Open()
Worksheet_Activateは
↓を標準モジュールでも、sheet1でもなくThisWorkbookに記述
Private Sub Workbook_Open()
Sheets("Sheet1").Select
Range("a2").Select
End Sub
614 :
名無しさん@そうだ選挙にいこう :2010/05/08(土) 23:03:31
>>612 そういう時は
thisworkbookのところで
Private Sub Workbook_Open()
Worksheets("sheet1").Activate
Range("a2").Select
End Sub
615 :
名無しさん@そうだ選挙にいこう :2010/05/08(土) 23:03:59
あ、失礼、リロードしていなかった
>>613 回答ありがとうございます。
「ブックを開いたときにsheet1が選択されている」のは
Worksheet_Activateにはならないんですね。
Sheet1はActivesheetなのに。。。
617 :
名無しさん@そうだ選挙にいこう :2010/05/08(土) 23:17:55
>>616 だってイベントが発生していない(´・ω・`)
618 :
複乳 :2010/05/08(土) 23:21:02
bookのActivesheetがsheet1なだけであって Sheet1から見たActivesheetではない この辺は全体を理解しなくてもマクロを組めるように、記述が簡素になってるんだよな スコープとかでぐぐると少しは分かるかもしれないが、vbaだとちとわかりづらいかも 別の言語触ってゲームでも作れば、すぐに理解できるようになるよ ただ結構な量勉強する必要があるので、興味なければやらない方がいいかもー
元からActiveだからじゃないのかな
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 こんばんは。 A〜H列にデータ群1、K〜R列にデータ群2があり、B列とL列は昇順で並び替えています。 データ群1のB列とデータ群2のL列を比較して、B列が大きければA〜H列の行を下方向にシフト、 L列が大きければK〜R列の行を下方向にシフト、同じならそのままにします。 (このあと、価格の値差やその結果を注記に書きますが、説明は省略) A B C D E F K L M N O P T U 連番 番号 品名 数量 単価 価格 連番 番号 品名 数量 単価 価格 注記 値差 1 A001 BKT 1 12 12 1 A001 BKT 1 12 12 2 A002 BKT 2 15 30 2 A002 BKT 2 14 28 これをマクロで書いて動作するところまで至ったものの、データ行が700くらいあると 40秒くらい掛かってしまい、シート数が320枚もあるので処理に2時間ほど掛かっています。 もっと速くする書き方があれば教えてください。 With Worksheets(ST) For j = 2 To 1000 If .Cells(j, 2) = "" Then 'データ群1の番号がない? If .Cells(j, 12) = "" Then 'データ群2の番号がない? Exit For Else .Cells(j, 21) = -.Cells(j, 16) .Cells(j, 20) = "'++" .Range(.Cells(j, 1), .Cells(j, 2)) = "↓" GoTo 100 End If
'(620の続き) Else If .Cells(j, 12) = "" Then 'データ群2の番号がない? .Cells(j, 21) = .Cells(j, 6) .Cells(j, 20) = "'--" GoTo 100 End If End If If .Cells(j, 2) = .Cells(j, 12) Then '番号が同じとき .Cells(j, 21) = .Cells(j, 6) - .Cells(j, 16) '値差 If .Cells(j, 21) = 0 Then '値差が0のとき .Cells(j, 20) = "'=" Else If .Cells(j, 4) = .Cells(j, 14) Then '数量が同じとき If .Cells(j, 6) > 0 Then 'データ群1の価格が0より大きいとき .Cells(j, 20) = "K" Else .Cells(j, 20) = "M" End If Else .Cells(j, 20) = "'-" End If End If
'(620-621の続き) ElseIf .Cells(j, 2) < .Cells(j, 12) Then .Range(.Cells(j, 11), .Cells(j, 19)).Insert Shift:=xlDown .Cells(j, 21) = .Cells(j, 6) - .Cells(j, 16) .Cells(j, 20) = "'-" .Range(.Cells(j, 11), .Cells(j, 19)).Interior.ColorIndex = xlNone Else .Range(.Cells(j, 1), .Cells(j, 9)).Insert Shift:=xlDown .Cells(j, 21) = .Cells(j, 6) - .Cells(j, 16) .Cells(j, 20) = "'+" .Range(.Cells(j, 1), .Cells(j, 2)) = "↓" .Range(.Cells(j, 1), .Cells(j, 9)).Interior.ColorIndex = xlNone End If 100 Next j End With よろしくお願いします。
>>620 とりあえず、マクロの先頭に
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
ActiveWindow.DisplayGridlines = False
Application.DisplayPasteOptions = False
Application.DisplayInsertOptions = False
Application.AutoRecover.Enabled = False
Application.ErrorCheckingOptions.BackgroundChecking = False
マクロの最後に
Application.Calculation = xlCalculationAutomatic
ActiveWindow.DisplayGridlines = True
Application.DisplayPasteOptions = True
Application.DisplayInsertOptions = True
Application.AutoRecover.Enabled = True
Application.ErrorCheckingOptions.BackgroundChecking = True
というのを付け足してみ。もしかしたらちょっと速くなるかもよ。
624 :
620 :2010/05/09(日) 05:24:11
>>623 ありがとうございます。
3シート分で試してみましたが、ほとんど変わりませんでした。
無駄なとこ多すぎるが、根本的な遅い原因はInsertを何度もやることだろ? Insertしない方法を考えないと。
俺はずいぶん長い間Insertしてないけどな。
insertは確かに遅くしている要素だけど、1枚40秒→20秒にするのは難しいと思うんだけど
628 :
名無しさん@そうだ選挙にいこう :2010/05/09(日) 10:18:13
まずシートに表(行500x列10くらい)がありまして、 列のある項目が一定の条件のもののみ別のシートに抽出するためにはどうすればいいでしょうか? ちょうどオートフィルタで抽出するときのような感じなのですが、その抽出パターンがいろいろあって、その抽出パターンの数(30くらいあり)だけシートを追加して作りたいんです。
>>627 作業列に連番とソートを利用すりゃ2秒もかからないんじゃないの?
1
2
3
4
5
のうち2と4に挿入したければ
1
2
3
4
5
2
4
と後ろに挿入したい番号を書き出してソートすればいい
>>628 フィルターオプションで複数条件は抜き出すことが出来るけれど、他シートに抜き出せないからね(´・ω・`)
マクロが簡単だとは思うけれど、そうこうしているうちに、手作業の方が早そうな気もw
ワークシート上でやらずに、配列に読み込んで処理したら?
>>630 んなこたーない
他シートから操作すればよい
633 :
名無しさん@そうだ選挙にいこう :2010/05/09(日) 16:34:21
ヒストグラムの作成で、規格上限値と規格下限値の位置に縦線を引きたいのですが 、良い方法はありませんでしょうか? あと、横軸の目盛45.5から51.1までしかありません。 ヒストグラムの表示範囲を45から55まで広げて、どっちに寄っているか などを調べたいのです。
634 :
複乳 :2010/05/09(日) 17:08:01
>>620 ・シートを全て新規ブックにコピーしてみる(エクセル特有の「ずっと使ってるシートが遅くなる」対策)
・挿入の代わりに別シートに写すsheets(1).cells(1,1)value=sheets(2).cells(1,1)value
みたいな感じ。挿入よりは相当早いと思うけどコード書くのめんどくさいんだよな
じゃなきゃ
>>631 の通り、配列。
・新規PCを購入。
・ウィルス対策ソフトを入れてるなら一時的に切る。
FORTRANって勉強する気にならんなぁ。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 セルA50の上※個のセルが「▼」なら「OK」と表示 セルA50の上※個のセルが「△」なら「NO」と表示 どちらにも該当しなければブランク という構文を書きたいのですが「A50」は相対参照 「※」は絶対参照として「B2」セルに書くものとしてどのように書けば良いでしょうか? 宜しくお願いします。。。
>>636 =IF(COUNTIF(A1:A49,"▼")=※1,"OK",IF(COUNTIF(A1:A49,"△")=※2,"NO",""))
(式中の※1、※2は
>>636 の▼の※個→※1、△の※個→※2としています。)
638 :
複乳 :2010/05/09(日) 20:19:26
>>636 menndoinala
B2は数字
=IF(INDIRECT("r"&50-B2&"c1",0)="▼","ok","")&IF(INDIRECT("r"&50-B2&"c1",0)="△","no","")
639 :
636 :2010/05/09(日) 20:33:19
>>637-638 早速のレスありがとうございます・・・こちらの書き方がまずかったです、すいません。。。
あらためまして以下内容にてお願い致しますm(_ _)m
セルA50の上※個のセルがすべて「▼」なら「OK」と表示
セルA50の上※個のセルがすべて「△」なら「NO」と表示
どちらにも該当しなければブランク
例)セル「B2」が「3」の場合
A47・A48・A49がすべて「▼」なら「OK」と表示
A47・A48・A49がすべて「△」なら「NO」と表示
どちらにも該当しなければブランク
セル「B2」の値を色々と変えて調べたいので「B2」を絶対参照としています。
宜しくお願い致します。。。
640 :
複乳 :2010/05/09(日) 20:50:17
>>639 あああああああああしねぼけええええええあああああああああ
=IF(COUNTIF(INDIRECT("a"&(50-B2)&":a49",1),"▼")=B2,"ok","")&IF(COUNTIF(INDIRECT("a"&(50-B2)&":a49",1),"△")=B2,"no","")
>>640 なに? 強迫観念でも持ってるの?
文句言いながらだったら、回答しなくてもいいじゃん…
642 :
名無しさん@そうだ選挙にいこう :2010/05/09(日) 20:58:15
いや、気持ちは分かる =IF(COUNTIF(OFFSET(A50,-(B2),0):A49,"▼")=B2,"OK",IF(COUNTIF(OFFSET(A50,-(B2),0):A49,"△")=B2,"NO",""))
643 :
636 :2010/05/09(日) 21:42:40
644 :
620 :2010/05/09(日) 22:23:24
>>625 >>629 ありがとうございます。
そのアイデアはGoodかも・・・。
マクロを書いて半年くらいですが、なんとかやってみます。
>>631 ありがとうございます。
私が持ってるExcel VBAの本には、配列について書かれていませんでした。
それだけ高度なことだと思いますので、継ぎ足し+ソートのあとで
配列の勉強をしてみます。
>>634 ありがとうございます。
新規PC購入は会社の都合上、無理です。
(ご察しのとおり、5年前に購入した古いPCです)
ウィルス対策ソフトを切るのもいいアイデアかもしれません。
ウィルススキャンのバージョンを上げてから、ファイルを開くだけで
時間が掛かるようになりました。
他の2項目は、私には難しくてよくわかりませんでした・・・ orz
645 :
636 :2010/05/09(日) 22:48:48
たびたびで申し訳ないのですが・・・ もう一つ条件を足したものでお願いできないでしょうか 宜しくお願いします。。。 ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆ セルA50が「△」でなお且つA50の上※個のセルがすべて「▼」なら「OK」と表示 セルA50が「▼」でなお且つA50の上※個のセルがすべて「△」なら「NO」と表示 どちらにも該当しなければブランク 「※」は絶対参照として「B2」セルに書く整数 ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆ お手数かけますがよろしくお願いいたします。。。
646 :
名無しさん@そうだ選挙にいこう :2010/05/09(日) 22:55:30
>>645 これくらいは勉強して出来るようになろう
=IF(AND(COUNTIF(OFFSET(A50,-(B2),0):A49,"▼")=B2,A50="△"),"OK",IF(AND(COUNTIF(OFFSET(A50,-(B2),0):A49,"△")=B2,A50="▼"),"NO",""))
647 :
複乳 :2010/05/09(日) 22:56:15
>>644 エクセルはシート以外にも無駄なデータをファイルの中に生成しているので、そのせいで遅くなることがある。
・シートを全て新規ブックにコピー
はそのまま。デスクトップでもどこでもいいからファイルを作って、そこに今使ってるファイルのシートを全てコピーする。
一見無駄に思えるかもしれないが、試すだけ試してみるといい。マクロのコピーも忘れずにな
後は、tempファイルの削除か。
PCの起動し、なにもアプリケーションを使っていない状態でC:\WINDOWS\Tempの中身を全部消す。
>>645 =IF(and(a50="△",COUNTIF(INDIRECT("a"&(50-B2)&":a49",1),"▼")=B2),"ok","")&IF(and(a50="▼",COUNTIF(INDIRECT("a"&(50-B2)&":a49",1),"△")=B2),"no","")
試してないけど動くんじゃないかな
648 :
636 :2010/05/09(日) 23:20:53
>>646 ありがとうございます!やっとクリアできました!
>>647 ありがとうございます・・・が、何故か表示されず・・・
だけどど同じ目的でも違う構文の書き方があるんだなとわかりました
INDIRECT(参照文字列,参照形式)についても勉強してみます!
>>633 グラフの範囲は軸の右クリックで変更できる
色違いの目盛り線を引くには、系列を2つ増やしてグラフが垂直の直線になるようなダミーデータを追加する
エクセル2007を使っています 印刷するにあったってA4ならどこまで入るとか表示させることってできますか? あと、20列あったとして、A4に入るサイズに列のサイズを指定する方法ってありますか
>>650 一度印刷プレビューを出してキャンセルすると、1ページごとの区切り(点線)がシートに表示されます。
印刷範囲を限定しても余白が大きくなるだけで、セルをめいっぱい広げる機能はないと思います。
電卓でサイズを計算して自分で設定ですね。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 Q列・R列・S列に並んだ数値をU列にも表示したいのですが 参照セルを「U11」としてそこに「Q」→「R」→「S」と打ち込むだけで U列の数値が「Q」→「R」→「S」と切り替わるようにするためには U列にどのように書けばいいでしょうか? よろしくおねがいします
>652 U列に表示したいのに 参照セルをU11にする っていうのが???だけど、とりあえず U12に =INDIRECT($U$11&ROW()) と入力して、以下フィルコピーしてみてください
>>653 わー出来ました!ありがとうございます!
表を12行目までで区切って使ってますのでこれで問題なしです
助かりました!
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 シート名を特定のセルに表示させたい場合 セルの構文は何と書けば良いでしょうか? 宜しくお願い致します
>>655 ってワークシート関数でできるんだろうか??
CELL関数でファイル名+ブック名+シート名の文字列が取れる あとはRIGHT関数か何かでシート名の部分だけを切り取ればいい
658 :
名無しさん@そうだ選挙にいこう :2010/05/10(月) 21:01:07
>>655 どこのセルでもA1は変えなくてOK
=RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1)))
超手抜きバージョン =MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,99)
フォルダ名に ] が含まれてると使えないね
661 :
名無しさん@そうだ選挙にいこう :2010/05/10(月) 21:06:03
これの方がいいか =REPLACE(CELL("filename",A1),1,FIND("]",CELL("filename",A1)),"")
662 :
名無しさん@そうだ選挙にいこう :2010/05/10(月) 21:07:52
そうそう、 ] が含まれていると使えない。 その場合は拡張子で判断するのがいいのかと思うけれど、xlsとxlsxがあるからね(´・ω・`)
フォルダ名に]が入ってても使える数式できたよー =MID(CELL("filename",A1),FIND("?",SUBSTITUTE(CELL("filename",A1),"]","?",LEN(CELL("filename",A1))- LEN(SUBSTITUTE(CELL("filename",A1),"]",""))),1)+1,LEN(CELL("filename",A1))-FIND("?",SUBSTITUTE( CELL("filename",A1),"]","?",LEN(CELL("filename",A1))-LEN(SUBSTITUTE(CELL("filename",A1),"]",""))),1))
ちょっと改良して短くしてみた =MID(CELL("filename",A1),FIND("?",SUBSTITUTE(CELL("filename",A1),"]","?", LEN(CELL("filename",A1))-LEN(SUBSTITUTE(CELL("filename",A1),"]",""))),1)+1, LEN(CELL("filename",A1)))
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 2点質問なのですが 1.同じブック内で他のシートのセルB1の数値を参照したいのですが ='シート名'!B1 と入力しても「0」と表示されてしまいます。 試しに数値の入っている他のセルでやってみても結果は同じでした。 何が原因でしょうか? 2.質問1と同様の操作で参照先に関数を含む文字列が入力されていて その文字列ではなく表示されている数値を参照したい場合 どのように入力すれば良いでしょうか? 以上2点についてお願いします
>>666 1,とりあえず参照元のセルの書式を確認して合わせてみる。
668 :
名無しさん@そうだ選挙にいこう :2010/05/11(火) 06:14:16
>>666 いや、できるはず。
入力じゃなくて「=」を入力してから、そのセルを選択してENTERして
2については自動的にそうなるから
>>651 印刷プレビューすると、
ツール→オプション の ウィンドウオプションで「改ページ」にチェックがつくんだよ。
>>667-668 出来ましたありがとうございます。
昨日やった時はなぜかできなかったんですが・・・
671 :
名無しさん@そうだ選挙にいこう :2010/05/11(火) 16:02:49
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 セルを削除すると、上へシフト、左へシフトというのが出ます。 これをせずに削除だけすることはできないのでしょうか?
>671 [Delete]キーを押してみたこと、ありますか?
クリアしてください 削除してシフトしないと 落とし穴になります。 削除は、セルそのものを消すこと。 内容だけを消す時は、クリアしてね。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 SUMIF関数について質問です L13からL42で数値が1以上のD13からD42の数値を合計したいのですが =SUMIF(L13:L42,">=1",D13:D42) と書くと「0」が表示されます。 関数は合ってると思うのですが何が原因でしょうか?
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 同じブック内の複数ページの同じ番地のセルに同じ文字列を一括コピーする方法ってありますか? 1ページずつペタペタ貼ってると時間掛かるしミスもしそうなんでお願いします
>675 コピー操作はいつも通りにしてから、 貼り付け先シートを複数選択(いわゆる作業グループ状態)してから 貼り付け先セルを選択して[Ctrl]+[V] 作業グループ解除(選択していないシートのタブをクリック) をやってみてください。
>674 配列数式というものを使います。 結果を表示したいセルに =SUM(IF(L13:L42>=1,D13:D42,0)) と入力(Enterはまだ押さない)してから [Shift]と[Ctrl]を押しながら[Enter]を押してみてください。 数式ボックスに {=SUM(IF(L13:L42>=1,D13:D42,0))} と表示されたらOKです。
678 :
名無しさん@そうだ選挙にいこう :2010/05/11(火) 20:28:21
>>674 >>677 は的外れのような。
関数は合っている。たぶんL列かD列のどちらか(もしくはどっちも)文字列になっていると思うのでチェックしてみ
>>677 ありがとうございます
やってみたのですがD13〜D42すべての数が合計されてしまいます
ちなみにL13〜L42の数値は1.42〜0.32です
それとなぜSUMIF関数が使えないのか理由についても教えていただけないでしょうか
因みにテーブル設定しています
>>678 ありがとうございます
おっしゃる通り文字列になっていました
数値に直すと
>>677 さんの方法でも正しく表示されました
お手数かけてすいませんでした
681 :
677 :2010/05/11(火) 21:14:04
>678 D列、L列とも数値だと結果は同じでした。ただ、L列の方がスペースや文字の場合も条件を満たすものとして 計算してしまったので、>677の方法は誤りになりますね。 >679 解決してなによりでした。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 例えばA1に色男と入力してあるとして、C1に=A1と入力すると「色男」と表示されますが A1色男のフォントの色をC1にも反映させるには、どうすれば良いのですか?
683 :
名無しさん@そうだ選挙にいこう :2010/05/11(火) 21:46:41
>>682 =A1で書式は無理。持ってこれない
だけど、図のリンク貼付けであれば見た目は書式を引っ張ってこられる
>682
2個前までのスレにはテンプレで注意事項とかいろいろあったけど、1個前からなくなってましたね。
以下はExcel総合相談所89のレスbTから一部抜粋です。
〜引用始め
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)
▼数式・関数
・ 表示形式以外の書式の取得設定、書式情報を条件とする数式 (ユーザー定義関数) ←ここ注意
・ 関数式でセルの選択状態を取得する (VBA)
・ セルの値でパスを補完して、開いてないブックのセルを参照する (VBA)
・ 入力したセルに結果を返す (VBA)
・ 範囲を引数にしての文字列連結 (ユーザー定義関数)
・ 値の書き換え、値の保持 (VBA)
・ 複数の結果を抽出、不定な数の結果を返す (VBA、結果の最大数が解っていれば最大数以上の式を論理式で組む)
・ 空白のセルの部分を上詰め、左詰めなどで表示する (作業セルを使って別セルに詰めて表示なら可能、それ以外はVBA)
・ VLOOKUP,HLOOKUP,MATCH等の関数で、検索語を全半角両方にマッチさせる (ユーザー定義関数)
〜引用終わり
ただ、エクセルの「カメラ機能」ってのを使えば幸せになれるかも。>683さんのリンク貼り付けがこれになるのかな?
http://hp.vector.co.jp/authors/VA014071/tips/camera.html
=COUNTIF(A1:A10,"○") =COUNTIF(A1:A10,"=○") これって同じですよね?
>>676 できました!助かりました、ありがとうございます!
ここは親切な方が多いですね
また何かありましたら宜しくお願いしま〜すm(_ _)m
687 :
名無しさん@そうだ選挙にいこう :2010/05/12(水) 11:42:03
あぼーん
689 :
名無しさん@そうだ選挙にいこう :2010/05/12(水) 20:12:43
690 :
名無しさん@そうだ選挙にいこう :2010/05/13(木) 02:50:11
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 2010/1/3をmonth関数で抽出する際に,この日付のセルをシリアル値にしました。 シリアル値はちゃんと1になるのですが、数式の結果が1月1日となります。 2010/2/1だと1月2日となります。なしてでしょうか?
>>690 >数式の結果が1月1日となります。
>2010/2/1だと1月2日となります。なしてでしょうか?
数式が間違っているから結果がそうなるのですよ。
>>690 Excel2002のヘルプより
>Excel では、日付を計算するために、日付が一連のシリアル値として格納されます。
>既定では、1900 年 1 月 1 日はシリアル値 1 となり、2008 年 1 月 1 日はシリアル値 39448 となります。
>これは、1900 年 1 月 1 日から 39,448 日が経過しているためです。
>また、時刻は一日の一部として小数値で格納されます。
で、month関数が返すのは月の数値。
(1900/)1/1〜1/12にしかなりようがない。
>690 その数式のあるセルの表示形式が"日付"になっていませんか? A1セルに2010/1/3などの日付が入っていて、B1セルが=month(A1)などの数式があると仮定して、 B1セルに 月 を表示したいなら、B1セルの表示形式を"標準"にします。 "1月"など"月"を付加して表示したければ、書式のユーザー設定で #"月" などと設定するか、 数式を =month(A1)&"月" などとします。(後者では結果が文字列になるので計算には使えない)
694 :
名無しさん@そうだ選挙にいこう :2010/05/13(木) 11:34:52
ごめんください ちょっと情報が情報なので現物はお見せできないのですが 当方が作ったとあるデータベースを社内で使いまわしているのですが 共有などを使わずに単純に個々人からのフィードバックを回収・集約しているのですが その中のうちωさんから戻ってきたファイルだけ大きさが倍くらいに増えているのですが ωさんのファイルの中身のシート内データを全てコピーして新規Excelに貼り付けて保存すると元の大きさに戻るのですが これはいったい何が原因なのでしょうか?
>>694 ctrl+endを押してみ。恐らく空白セルになるはずだから。
普通は入力されているセルでとまる。
>>694 Excelではよくあること。
編集を繰り返しているとファイルがどんどん大きくなる。
全データをコピーしなおせば小さくなる。
>>691 違ってるのは数式じゃなくて表示形式じゃね?
698 :
名無しさん@そうだ選挙にいこう :2010/05/13(木) 13:26:27
>>693 標準にすると正しく表示されました。助かりました。ありがとうございます。
【1 OSの種類】WindowsXP 【2 Excelのバージョン】Excel2003 【3 VBAが使えるか】いいえ 【4 VBAでの回答の可否】可 Excelファイルで選択したセルの行に色を付加するマクロを組んだ表で JPEG画像へのハイパーリンクを設定しています。 Excelファイル単体からハイパーリンクを選択するとExcelはそのままで JPEG画像のみInternetExplorer8に表示されます。 しかし、InternetExplorerからExcelファイルを表示させた場合に於いて ハイパーリンクの飛び先はExcelファイルが開いていた同じウィンドウ上で 開かれてしまい、Excelファイルは戻るボタンを押さない限り消えます。 Webページで保存した場合はアクティブなセルの色変更が出来ないので HTMLタグで直接Excelファイルへのアクセスを行っている状況です。 ハイパーリンクで設定しているJPEG画像を別ウィンドウで開くようにする 何か設定方法はないものでしょうか?
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【相談内容】計算式の最適化をお願いします。 A B C D E ・・・・ I J 1 日付 開始 終了 氏名 給料 時給表 2 1 9:00 17:00 山田 斉藤 800 3 1 9:00 17:00 佐藤 佐藤 900 4 1 12:00 20:00 田中 田中 800 5 1 12:00 20:00 斉藤 山田 900 6 2 9:00 17:00 山田 時給や時間は適当です。 E列には (C列:勤務終了 ― B列:勤務開始)×時給 の式を出したい 関数や機能のボキャブラリーが貧困なため、↓のような力技でやってます E2: (C2-B2)*IF(D2=$I$2,$J$2,IF(D2=$I$3,$J$3,IF(D2=$I$4,$J$4,IF(D2=$I$5,$J$5,0)))) 実際にはスタッフが15人いて、もっと膨大な量の計算式になっています。 もっとスマートに計算する方法を教えて下さい。マジで助けて下さい。
山田の横の列に時給を入れれば計算が簡単だね 時給はVLOOKUPで引っ張ってくればいい
702 :
700 :2010/05/14(金) 04:09:06
>>701 VLOOKUPで予想以上にスマートな計算式になりました
助かりました。ありがとうございました。
703 :
名無しさん@そうだ選挙にいこう :2010/05/14(金) 08:20:37
excelで巨大な表があります。 ある部分ごとに自分でページを指定して印刷したいのですが いい方法ありますか? 例えばA1:L300の表があって、 1ページ目→B1:J8を印刷 2ページ目→B9:J12を印刷 3ページ目→B13:J20を印刷 4ページ目→B21:J38を印刷 5ページ目→B39:J42を印刷 ・ ・ ・ みたいな感じで印刷したいんです。
>703 前スレの124で質問があったのと似てますね。 印刷範囲をとびとびに指定するだけです。 ファイル→ページ設定→シートタブ 印刷範囲を B1:J8,B9:J12,B13:J38・・・・・と指定できます。
705 :
名無しさん@そうだ選挙にいこう :2010/05/14(金) 10:42:18
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━ 【1 OSの種類 .】 WindowsXP SP3 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 セルのロック シート 解除 削除 宜しく御願いします。 指定したシートの中で、セルのロックが外されているセルだけ一括削除したいのですが、 どのようにしたら宜しいでしょうか? 例)シート1 A3 B5 B6・・・などセルロックが多数外されてる(入力用)箇所のセルの 値を一括で削除(クリア)をしたいです。
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━ 【1 OSの種類 .】 WindowsXP SP2 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 エクセル 表 逆引き 検索 など よろしくお願いします。 Sheet1のA列に個人名が入力されていて、1行目には日付が入力さてているシフト表があります。 Sheet2にはA1に関数でTODAYが入力されていて、A1の日付に対応して出勤するひとの名前をA列に表示したいのです。 例えば太郎くんの 5月14日の シフトは"遅番" のように名前と日付でシフトを求めるのではなく 5月14日の 遅番は "太郎くん" みたい 日付とシフトで名前を求めたいのですが、うまくいきません。 どうかご教授願います。
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 チェックボックス 色付け シートにチェックボックスを貼り付け、そのOn/Offで対応するセルの色を変 えたい(白/赤)と思っています。 書式設定を使って、チェックボックスと使用しないセル(A1)をリンクさせ、 その値がTrueかFalseを確認してから使用するセル(B1)の色を変える方法 をやってみたのですが、A1を介さずに直接B1の色を変更するにはどうした ら良いでしょうか? よろしくお願いします。
無理じゃね?コントロールを直接参照する方法がない
>>707 当方2002しかもっていないので2007でできるか解らないが
コントロールツールボックスのほうのチェックボックスだったら可能じゃない?
VBAで制御することになるが。
710 :
名無しさん@そうだ選挙にいこう :2010/05/14(金) 19:23:31
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 マクロ 分岐 単位 条件付け等 品物の発送用のデータを入力する際にC/No.1-30といった書き方を するのですがC/No.の部分を自動で表示させて数字の部分だけを 打ち込めばいいようにしたいと思っています。 自分で調べた結果、書式設定で"C/No."#-##とやればC/No.1-30 という表示にできることが分かりましたが、C/No.31-131等の データを表示しようとすると上手くいきません。 今は"C/No."###-###を設定してC/No.1-30やC/No.31-131等は手打ちで やっているのですが130ならC/No.1-30、31131ならC/No.31-131 というように数字だけでC/No.のところが表示されるようにはできないのでしょうか? どなたかご教授お願いいたします
>710 ハイフンをどこに入れるのか?という条件が指定されてない以上、数字だけ示して解決する問題ではありません。 郵便番号のように、必ず7桁の数字→先頭3桁+残り4桁 という規則はありませんよね? 31131→3−1131なのか、31−131なのか、311−31なのか、どうやって判断させるのですか?
【1 OSの種類 .】 WindowsXP SP2 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 INDEX CHOOSE
間違いました。
>>705 Option Explicit
Sub fuku()
Dim nyu, sex
Set nyu = UsedRange
For Each sex In nyu
If sex.Locked = False Then
sex.ClearContents
End If
Next
End Sub
>>706 シートの構成が全然わからん
>>707 CheckBox1_Changeじゃだめ?
Private Sub CheckBox1_Change()
If CheckBox1.Value = True Then
Range("B1").Interior.ColorIndex = 6
Else
Range("B1").Interior.ColorIndex = 1
End If
End Sub
>>710 "C/No."@で我慢する
もしくはリストを用意しておき、vlookupかなんかでテキトーにやる
716 :
710 :2010/05/14(金) 20:34:05
>>711 法則性はありません。あるとしたら3桁のときは1-99まで5桁は10-999まで
というような感じになってしまうので・・・
>>715 ありがとうございます。@で直接文字列が表示されるんですね。
検索不足でした;;
>>716 必ず3桁が0-00、5桁が00-000の形なら立派な法則性だろう。
4桁とかの場合はないのか?
【1 OSの種類 .】 WindowsXP SP2 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 3D参照 INDEXやHLOOKUP関数は別のシートでセルの形式が違う場合 値を返すことが出来ないのでしょうか?またその場合、どんな関数を 使えば良いのでしょうか?
719 :
名無しさん@そうだ選挙にいこう :2010/05/14(金) 22:30:13
説明がうまくできなくてすいません。 下図のようなシートの構成でsheet2のA3:A5の部分についての相談です どうかお願いします。 Sheet1 A B C D E F 1 5/1 5/2 5/3 5/4 5/5 2 太郎 遅番 早番 中番 夜勤 休み 3 花子 中番 遅番 夜勤 休み 早番 4 次郎 早番 夜勤 休み 遅番 中番 5 節子 夜勤 休み 早番 早番 夜勤 Sheet2 A TODAY() ↓ 1 5/2 2 出勤者 3 太郎 4 花子 5 次郎
>>709 >>715 レスありがとうございました。すぐにでも試したいのですが、実家のPCに
excelが入っているためできません。
自宅PCにはExcelがなく、実家がネット環境がないため現地で調べる事が
できないという複雑な状況です。
>コントロールツールボックスのほうのチェックボックスだったら可能じゃない?
こちらは「開発」→「挿入」の中のActiveXコントロールのことでよかったでし
ょうか?
>706,719 >706では >5月14日の 遅番は "太郎くん" みたい 日付とシフトで名前を求めたい とあるのに、>719では Sheet2 A TODAY() ↓ 1 5/2 2 出勤者 3 太郎 4 花子 5 次郎 と、勤務指定(シフト)の指定がありません。 単に「出勤する人」の羅列でいいのですか? それとも ↓ 1 5/2 2 出勤者 シフト 3 太郎 早番 4 花子 遅番 5 次郎 夜勤 みたいに名前の脇に勤務指定を付加していいのですか?
722 :
複乳 :2010/05/14(金) 23:20:14
>>718 形式って書式設定のこと?それなら別シートとか関係無い
大方数式が間違ってると思うので、ここに書いたら添削してあげるよ
>>719 全てsheet2
A3=INDIRECT("sheet1!r"&MATCH(B3,INDIRECT("sheet1!c"&MATCH($A$1,Sheet1!$A$1:$BA$1,0),0),0)&"c1",0)
A6までオートフィル
B3=早番 B4=中番 B5=遅番 B6=夜勤
>>720 無料オフィスっぽいソフト
ttp://ja.openoffice.org/ >>721 被った。スマン。聞く前に作っちゃった方が早いよ
723 :
名無しさん@そうだ選挙にいこう :2010/05/14(金) 23:25:18
>>721 レスありがとうございます。
出勤する人の羅列がしたいです、よろしくお願いします。
>>707 フォームのチェックボックスなら
下を作ってチェックボックスにマクロ登録するといいかも
Sub 色変更()
If ActiveSheet.CheckBoxes(Application.Caller).Value = xlOn Then
ActiveSheet.Range("B2").Interior.ColorIndex = 3
Else
ActiveSheet.Range("B2").Interior.ColorIndex = 2
End If
End Sub
すいません、関数についてなのですが質問させてください。 例えば、8:00から8:59の間を検索し、その間にあったものの個数をカウントしたいので 現在countifにて試しているのですが、検索条件に何と入れて良いか分からず困っています。 8:00から8:59の間のものを抽出するには検索条件にどのように入力すればいいのでしょうか。 Excel2003でwindowsXPです、 わかりにくい質問と思いますが、よろしくお願いします。
726 :
名無しさん@そうだ選挙にいこう :2010/05/15(土) 11:05:40
>>725 =SUMPRODUCT((HOUR(A1:A10)=8)*1)
=SUMPRODUCT((TEXT(A1:A3,"h")="8")*1)
countifだと出来ないと思う。
>>726 凄い。ありがとうございます。
おかげさまで助かりました。
重いSUMPRODUCTねぇ。 COUNTIFなら =COUNTIF(A1:A10000,">=8:00")-COUNTIF(A1:A10000,">=9:00") だが、時刻別に網羅するならピボットテーブルな。 COUNTIFも駄目だ。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 エクセル offset グラフ 空白 セル
A列とX軸、B列をY軸として最新100件のデータだけを表示する動的なグラフを作成しています。
http://office.microsoft.com/ja-jp/excel/HA011098011041.aspx このURLやいくつかのサイトを参考に、名前を定義する方法でグラフを作ることができることがわかったのですが、実はA列B列には全て式がはいっており、条件の満たさないもの(まだ未入力のもの)は""となっています。
空白ではないので、URL先にある=OFFSET(Sheet1!$A$1,COUNTA($A:$A)-100,0,100)は使うことができません。
そこでCOUNTA($A:$A)の部分を
=COUNTA($A:$A)-COUNTBLANK($A:$A) や
=SUMPRODUCT(($A:$A<>"")*1)
=ROWS($A:$A)-COUNTBLANK($A:$A)
などに変更したのですが、いざその名前をグラフの値にいれると
「このワークシートの数式に、1つまたは複数の無効な参照が含まれています。〜」
とでてしまいます。COUNTA($A:$A)の場合はエラーがでません。
しかしその場合は式がはいっているので全てゼロのグラフになってしまいます。
どこかに見落としがあるのかと何度も作りなおしましたが、さっぱりわかりません・・・。
わかりにくいかもしれませんが、どうかよろしくお願いします。
>>722 A15のセルに
=HLOOKUP(A16,リスト!AC2:BV2,2,0)
と書きました。
0の部分をTURE、1、FALSEとしてもエラーでした。
731 :
複乳 :2010/05/15(土) 15:07:57
>>730 =HLOOKUP(A16,リスト!AC2:BV3,2,0)
範囲には結果の出るセルまで含めないとダメよん
732 :
名無しさん@そうだ選挙にいこう :2010/05/15(土) 15:51:12
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 自動改行 一行が凄く長いテキストファイルがあるのですが、そのファイルを エクセルに外部入力で読み込ませ、文章を100行目で区切って行列表示させたいです。 そういうことが可能ならば、どのようにすればよいのでしょうか? テキストファイル時 1.....10000 エクセル入力時 1...100 101...200 (省略) 9901...10000 という風にしたいです。
733 :
複乳 :2010/05/15(土) 16:22:20
>>732 文章を100行目は100文字目ということか?
734 :
複乳 :2010/05/15(土) 16:25:43
100文字という前提で A1=その文章 B1=MID($A$1,((ROW()-1)*100+1),100) B2以下、下へオートフィル
735 :
名無しさん@そうだ選挙にいこう :2010/05/15(土) 16:29:30
>>733 分かりにくくて申し訳ありません。
>>732 の文章とは違う内容になってしまうのですが、
正確には、単語A, 単語B, 単語C, ... 単語xという風なcsv形式のテキストで、
単語が1万個ほどカンマで区切られて載っています。(すべて最初の1行に)
それを、
単語A...単語x(100単語)
単語y(101単語)..単語z(200単語)
省略
単語xx(9901単語)..単語yy(10000単語)
という風にして、エクセルに行列表示させたいです。
736 :
複乳 :2010/05/15(土) 16:34:50
>>735 なんとなくわかった
後は単語A...単語x(100単語) はどういうふうに表示する?
A1,B1とセルを横に並べて分けるか、一つのセルにいれるか
737 :
名無しさん@そうだ選挙にいこう :2010/05/15(土) 16:37:16
>>736 ご理解、ありがとうございます。
A1, B1と分けて表示させたいです。
単語AはA1、単語BはB1、
単語yはA2、といった具合にしたいです。
738 :
複乳 :2010/05/15(土) 16:51:38
>>737 A1に文字列を入れる。BからCW列に表示。
エクセルの仕様で1セルに入る文字は30000文字ちょいなので、きりのいいところで切ってつなげるといい
Option Explicit
Sub a()
Dim fuku, i
fuku = Split(Cells(1, 1), ",")
For i = 0 To UBound(fuku)
Cells(Int(i / 100) + 1, (i Mod 100) + 2).Value = fuku(i)
Next
End Sub
739 :
名無しさん@そうだ選挙にいこう :2010/05/15(土) 17:11:52
>>738 ありがとうございます。
これからやってみます。
741 :
706 :2010/05/15(土) 19:03:24
【1 OSの種類 .】 WindowsXP SP3 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 固定長列のCSVファイルからIDと氏名だけを切り出しているんだが、 氏名の後ろにスペースが入るんで困っている。 (例)山田□太郎□□□□□ 森 茂子□□□□□□ □がスペース この後ろのスペースを計算式かVBAで削除できる? (´・ω・`)
>>731 うまくいきました。ありがとうございます。
>>742 =LEFT(A2,FIND(" ",A2,FIND(" ",A2,1)+1)-1)
745 :
名無しさん@そうだ選挙にいこう :2010/05/15(土) 21:03:55
>>745 サンクス
便利な関数があるんだな。知らんかったわ
excel 数式エディタを使用して エクセルに数式を貼り付けているのですが その数式で文字と文字の間に変なスペースが入ったりしてしまいます。 数式を編集中はなんとも無いのですが、 変なスペースが入らないようにする方法はありますか?
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 株価のデータを作成しているのですが標準偏差や平滑指数平均など 小数点以下多数桁の数値が多くさらにそれらを参照して計算させています。 「エクセルは小数点以下の計算が苦手」という話を聞きまして 上記のような場合はROUND関数などで数値を丸めた方が計算速度や正確性は上がるでしょうか? もし体感できない程度ならそのままにしておこうかと思っているのですが・・・ (修正するとなると結構な手間になりそうなので)
749 :
名無しさん@そうだ選挙にいこう :2010/05/16(日) 07:55:18
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 棒グラフ 平成21年度と平成22年度の月別事故件数とその内訳の比較グラフを作ろうとしています。 4月、5月、〜、3月ごとに、平成21年度と平成22年度の棒グラフが並んで比較できるようになっていて グラフ数値の内訳として「物的要因/人的要因」などが表示できるようにしたいのですが うまい方法はないでしょうか?
>>748 Excelが少数以下の計算が苦手なのは誤差が出るからです。
ROUNDは端数を削って誤差をさらに大きくするだけなので意味ないです。
削るための処理が増えるので計算も遅くなります。
その誤差が問題になるかどうかは計算の方法と、その結果をどうやって使うかに関わりますので
簡単に答えることはできません。
2003を使用してるんですが、むかしどっかで複数のファイルをタブ化できる ソフトってのをみたんですが、そのソフト名を忘れてしまって ご存じの方いたらそのソフト名を教えてください。
754 :
複乳 :2010/05/16(日) 11:50:36
エクセル タブ化 でぐぐればそれらしいのがいろいろ
>>748 体感速度上げたいならブックの計算を手動にするのがいいんじゃないかと
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 12列目にある「B」の数を数えて「B」が無い場合は「0」でなくブランク表示されるようにしたいのですが =COUNTIF(B13:BI13,"B") ←この式だと「0」も表示されてしまいます。 他のセルでは答えが「0」も表示させたいのでシート全体で「0」の非表示ではなく 当該セルのみのやり方で教えていただけないでしょうか 宜しくお願いします
757 :
名無しさん@そうだ選挙にいこう :2010/05/16(日) 15:54:28
>>756 式でやってもいいし、
=IF(COUNTIF(B13:BI13,"B"),COUNTIF(B13:BI13,"B"),"")
セルの書式設定でユーザー定義で
0;;
こんな感じにしても可
もうひとつやり方ある。 メニューのツール→オプションから、表示タブ。 ゼロ値のチェックを外すと 0 になるセルは空白になる。
・・・って、条件、よく読んでなかった。 忘れてくれ。
セルの書式設定でやるなら書式を # にするのもいいかも
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 税込み金額から税金額だけを計算する関数はありますか? 税込み1050円の税金分は50円のように。 よろしくお願いします。
763 :
名無しさん@そうだ選挙にいこう :2010/05/16(日) 16:18:44
>>762 小学生の算数ですが・・・
=A1-A1/1.05
とか、なんとか・・・
もっと簡素にするなら、 =A1/0.05 かな?
次でボケて(AAry
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| | 次でボケて!!! | |________| ∧∧ || ( ゚д゚)|| / づΦ
"次でボケて"といわれると ボケたくなくなる 天邪鬼なので
>>764 =A1/21
じゃない?
といってみるテスト
771 :
名無しさん@そうだ選挙にいこう :2010/05/16(日) 17:53:25
>>762 みたいな低能にエクセルは勿体ないな
電卓で充分w
>>764 =A1*0.05が正解! よく考えようぜ!
>>762 ホームセンターなどで、税額ボタンが付いている電卓を買ってくる。
PCの横に電卓をおく。
電卓に税込金額を入力する。
税額ボタンをおす。
表示された税額をPCで入力する。
WinXPの2003です。 A1とA3のセルを選択した状態で1と3の列全体を選択する方法ってないでしょうか? Shift+SpaceだとA1+3の列全体が選択されてしまうんですが・・・
>>751-752 ありがとうございます
ご意見分かれてるようなので他の方の意見も伺えればと思うのですが・・・
よろしくお願いします
>>775 一発でやる方法はない。
A1をクリック→Shift+スペース→Ctrl押しながらA3をクリック→もう一度Shift+スペース
ただし、左端の「1」をクリック→Ctrlを押しながら「3」をクリック、のが早い。
あと、「1の列」じゃなくて「1行目」な。数字は「行」。
「列」はアルファベットに対して使う。「A列」とか。
Excelではそういう決まり。
>>777 そうですか。
ジャンプ→空のセル選択→その行選択(列じゃないんですね。失礼。)で削除したかったんですが。
1000行くらいあるもんで・・・ なんか別の方法を考えますわ。
ありがとうございました。
779 :
762 :2010/05/16(日) 22:22:42
>>763 -
関数は無いという事で間違いないですか?
ちなみに、=A1*(5/105)が正しいですよ。
>>748 小数誤差 でぐぐれ
大丈夫かどうかは場合による。
グラフ作る目的や価格の動向程度では問題にはならない
論理値を出す場合などに問題が発生する
どうしても不安なら整数にしてから計算する
それでも不安なら電卓叩けばいい
782 :
複乳 :2010/05/16(日) 22:28:19
>>778 F4が前回と同じ動作になる
行削除→行選択→F4→選択
それか残したい行の使っていない列に1を入れて行き、その列でオートフィルタかける→新規シートにコピー
783 :
762 :2010/05/16(日) 22:29:52
関数はありません。 つーか、「税」って5%だけだと思ってるバカですか?
787 :
名無しさん@そうだ選挙にいこう :2010/05/16(日) 22:48:32
>>778 オートフィルターで空白セル選択、可視セル選択にして行を削除 とか、
vbaとか
788 :
762 :2010/05/16(日) 23:03:18
>>780 ありがとうございます。
>浮動小数点数の演算を高速化するための専用の装置を別途搭載している場合が多い
>(現在では、CPUに内蔵していることも多い)。
との記述があるのでとりあえず現状のままで使ってみようと思います。
砂時計が出たままになるのはシート数を減らすなどで対応した方が良さそうですね。
>>783 ユーモア。
大丈夫。理解できなくても、生きていけるさ。
【1 OSの種類 .】 Windows Vista 【2 Excelのバージョン 】 Excel 2007 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可(回答例を書いてもらえるなら) 列A,Bにそれぞれ値があり複数条件でのソートをしたいのですが操作方法が思い浮かびません。 よろしくお願いします。 ※下記はA1:B5の範囲。→後は理想的な結果。0は0もしくは値なし。 2 0 1 0 5 2 2 0 1 0→3 2 3 2 5 2 4 0 4 0
792 :
複乳 :2010/05/16(日) 23:36:16
>>788 Function zei(motonedan As Integer)
Dim zeiritu As Double
zeiritu = 0.05
zei = motonedan * zeiritu / (1 + zeiritu)
End Function
・・・0.05/1.05かけた方が早くね?練習がてらやるならいいけどさ
ちなみに税率も引数にした方がいいんだがもういいか
>>789 重いなら使わない部分はコピー、値で貼りつけて数式を極力なくした方が良い
他人が作ったファイルで、30行までデータ(説明文とかを含む)があって 右のバーが短くなってるとき、31行目以降に無駄なデータがあるか調べるのに マクロを書きましたが糞重たいです。 アイデアください。 Sub check() For i = 31 To 65536 For j = 1 To 255 If Cells(i, j) <> "" Then MsgBox j & "列, " & i & "行" Next j Next i End Sub
>>793 そりゃ重いだろうな…
空白行が無い前提なら
Selection.End(xlDown).Select
とか
counta とかで先に範囲を限定するんだが…
不要なのが分かってるなら削除するかな。
蛇足だが…
=COUNTA(31:65536)
とやると、どれだけセルに入力されてるかの目安にはなるぞ。
>>793 最終行を取得して、それを比較すればいいんじゃないか。
796 :
788 :2010/05/17(月) 00:13:50
>>792 複乳さんだ!
関数を書いていただき、ありがとうございます!(`・ω・´)
さっそく使わせていただきます。
>>790 わかっとりますw
797 :
794 :2010/05/17(月) 00:31:30
>右のバーが短くなってるとき
思ったんだが、もしかして下にデータが絶対あるはずだと考えた?
まれに(?)データが無くてもスクロールバーは小さくなることが有るぞ?
=COUNTA(31:65536)
この関数で、もし 0 なら、あきらめて
>>694-696 と同じ対処したほーがいいと思うぞ。
>>789 その解説はちょっと古い
小数の計算をする専用の装置は、15年ぐらい前からCPU内蔵率100%になってる
つまり計算に時間がかかる原因は別にある
まさかと思うけど、使ってるパソコンが古くないか?
あと、専用の装置を使ったからと言って誤差がなくなるわけではない点にも注意
【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel 2007
【3 VBAが使えるか .】 いいいえ
【4 VBAでの回答の可否】 不可
すみません、質問です
http://www.dotup.org/uploda/www.dotup.org891251.jpg 上の画像で、一定の間隔をあけたD列のセルのテキストを、F列で空白なく、参照したいのですが、
やり方がわかりません。。
INDEX関数かOFFSET関数かだとは思うのですが、どちらも思ったような結果を返してくれません(; ;)
詳しい方、アドバイスお願いします!m(_ _)m
800 :
名無しさん@そうだ選挙にいこう :2010/05/17(月) 06:57:02
>>799 例えば
=INDEX(D:D,ROW(A1)*3+7,0)
801 :
名無しさん@そうだ選挙にいこう :2010/05/17(月) 06:57:48
あ、F10にね、上の式。下にコピー
>>799 じゃあOFFSETの場合
=OFFSET(D$10,ROW()*3-30,0)
>>800 '=D10
'=D13
と入力して、2個のセルを選択してフィルコピーしてから
データ、区切り位置、完了
この方法で出来た式が一番軽い。
どうしても関数でやるならINDEXだな。
ただし
>>800 のROW(A1)の部分はROW(D1)の方がベター。
804 :
複乳 :2010/05/17(月) 08:14:59
>>791 条件がよくわからないんだが、
とりあえずC列にA1+B1か、A1&B1でもしてそれをもとにソートしてはどうでしょう
>>799 折角だから俺はindirectを使うぜ!
=INDIRECT("r"&(ROW()-10)*3+10&"c4",0)
やっぱりお前が出てきたか。 しかし強情なやっちゃなぁ。 OFFSETやINDIRECTの揮発性の関数は使っちゃいかんよ。
>>806 同じだったのはExcel5だったかExcel95の時代だよ。
いまどきそんな昔のバージョン使ってるやつ滅多にいないだろ?
809 :
複乳 :2010/05/17(月) 11:53:48
【1 OSの種類 .】 Vista 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい?(自分では作成できませんが使い方はある程度分かります) 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 参照 リスト 複数など あるシートの列に 1111 1111 1113 1112 1111 以下続く といったようにコードが振ってあります これらを別のシートにある 1111 A 1112 A 1113 B 以下続く と、コードをAやBといったブロック分けしてある参照表を元に照らし合わせたいのです 参照結果は作業列に吐き出したいと思っています 元データ上ではコードは重複しています 別シートの参照表ではコードは重複していませんが、AやBには複数のコードが含まれます VLOOKUP関数なのかと考えましたが、今回のケースでの応用がよくわかりませんでした よろしくお願いします
>>809 そんなもの信用しちゃいかんよ。
すくなくともExcel97はROWS,COLUMNS,INDEXは揮発性じゃなかったぞ。
調べ方知ってるか?
Calculateイベントで調べるんだよ。
Excel95はOnCalculateプロパティで調べる。
>>811 これは嘘なの?
tp://www.relief.jp/itnote/archives/001519.php
インストラクターだからお前さんより信用出来ると思うんだが。
>>812 そりゃ嘘だろう
ググって調べただけで実際自分でコード書いて調べてはいないんだろうね
論より証拠だから
814 :
複乳 :2010/05/17(月) 15:20:35
うおマジだ。
2000でもindexは揮発性じゃないな。俺が悪かった。
ゲイツめ・・
>>810 リストがsheet2とすると
B1=INDEX(Sheet2!B:B,MATCH(A1,Sheet2!A:A,0))
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 関数式のあるセルの列の部分($A13←13の部分)のみを可変数値として 他のセルを参照させたいのですがどのように表記すれば良いでしょうか? (可変数値を入力するセルを「L6」とした場合) 以上よろしくお願い致します
816 :
810 :2010/05/17(月) 18:47:41
>>814 ありがとうございます!
うまくいきました
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 一枚の基本シートを1ヶ月分31枚コピーするマクロでこんな感じのを見つけました。 で、シートのB5に1日用シートなら1、10日用シートなら10と、 コピーするついでに数字を入れるように改造して頂けないでしょうか Sub copysheet() Dim i As Integer i = 1 Worksheets(i).Name = i & "日" Do Worksheets(1).Copy After:=Worksheets(i) i = i + 1 Worksheets(i).Name = i & "日" Loop While i < 31 End Sub
>>815 indirect関数
>>817 doの次に
Worksheets(i).cells(5,2) = i
819 :
815 :2010/05/17(月) 20:32:02
>>818 ありがとうございます
XXXXXXXXX$A13XXXXXXXX
XXXXXXXXX$B13XXXXXXXX
XXXXXXXXX$C13XXXXXXXX
XXXXXXXXX$D13XXXXXXXX
・
・
・
・
という風に複数の関数があってセル「L6」の数値を「13」→「20」に変えると
XXXXXXXXX$A20XXXXXXXX
XXXXXXXXX$B20XXXXXXXX
XXXXXXXXX$C20XXXXXXXX
XXXXXXXXX$D20XXXXXXXX
・
・
・
・
と一括変換されるようにしたいのですが・・・
>>815 $A13の13の部分なら列の部分じゃなく行の部分だろ?
複乳さえ心を入れ替えてINDEXを使うようにしようと書いてる矢先に
>>818 は馬鹿なの?死ぬの?
縦なら=INDEX(A:A,L6)、横なら=INDEX($A:$A,L6)だよ。
822 :
名無しさん@そうだ選挙にいこう :2010/05/17(月) 21:07:33
>>819 とりあえず、やっぱりINDIRECT関数
2007/5/11 2007/5/12 2007/5/13 ・ ・ ・ 2010/5/13 2010/5/14 2010/5/17 2010/5/18 という風に日付が並んでいるのですが(ただし全てではなく土日祝などは含まれません) この中から毎月の第二木曜日のみ日付の隣のセルに「休」が表示されるようにしたいのですが どのような関数で書けばよいでしょうか? よろしくお願いします
824 :
名無しさん@そうだ選挙にいこう :2010/05/17(月) 22:44:33
>>823 A2から始まっているとして
=IF(DATE(YEAR(A2),MONTH(A2),0)+14-WEEKDAY(DATE(YEAR(A2),MONTH(A2),4),3)=A2,"休","")
第二木曜日はたぶん合っていると思うけど、式が・・・・ww、、、よくわかんねーや
>>824 できました!ありがとうございます!
でも質問間違えてました!第二金曜日でした!どこを変えればいいですか?!
=IF(DATE(YEAR(A2),MONTH(A2),0)+14-WEEKDAY(DATE(YEAR(A2),MONTH(A2),3),3)=A2,"休","") でいけました!お騒がせしました!
827 :
名無しさん@そうだ選挙にいこう :2010/05/17(月) 23:34:51
私は聞いておるのだ、揮発性関数とは何なのかと。
828 :
名無しさん@そうだ選挙にいこう :2010/05/17(月) 23:39:31
旭化成は考えます、いま何が必要なのかを。
829 :
名無しさん@そうだ選挙にいこう :2010/05/17(月) 23:44:29
エクセル97持ってるけど2007か2010にバージョンアップってできる? 2010買った方がイイのかな MCASのエクセル2007か2010受けたい
>>827 揮発性関数というのは関数の値が記憶されずに消えてしまう(揮発する)関数のこと。
一番わかりやすい例がNOW()関数。現在時刻はどんどん変化するから式が呼び出さるれたびに再計算される。
ブックを閉じて開くだでけも再計算されて、編集してないのにいちいち「変更を保存しすまか?」とか聞いてくる。
Excelの動作が重くなるので何が何でも揮発性関数は使わないようにしようって
主張する頭の固い人がこのスレにはいるってだけのこと。
ぶちゃっけそんなのケースバケイースだろ
>>829 できない
2007にバージョンアップできるのは2000以降
2010に無料アップグレードできる2007を買う手もあるけど2007と2010は使い勝手が違うから
今のタイミングなら発売までは2010のベータ版を使っといた方がいいかも
会社の年度毎の売上成績書を作る為に日付けを「期」に直す式を教えて下さい。 会社は毎期 2月21日〜翌年の2月20日で1期です A1に「20100614」の様な日付を表す6桁の数値が入っています。 そこで、その数値からファイルを開いた日を基準に考えて「前々期」・「前期」・「当期」・「該当なし」の いずれかの値を返す式を教えて下さい。 例えば ファイルを開いた日が2010年5月18日であれば 20080221〜20090220は"前々期" 20090221〜20100220は"前期" 20100221〜20110221は"当期"
そのまま書けばいいんじゃないの? =IF(YEAR(TODAY())-(LEFT(A1,4))=0,"当期",IF(YEAR(TODAY())-(LEFT(A1,4))=1,"前期",IF(YEAR(TODAY())-(LEFT(A1,4))=0,"前々期","")))
おっと、コピペした部分で修正もれ… =IF(YEAR(TODAY())-(LEFT(A1,4))=0,"当期",IF(YEAR(TODAY())-(LEFT(A1,4))=1,"前期",IF(YEAR(TODAY())-(LEFT(A1,4))=2,"前々期","")))
ごめん、忘れてくれ… うっかりちゃんだな、俺。
837 :
836 :2010/05/18(火) 11:11:41
すみません仰るとおり違うみたいです。
すいません・・・
>>819 のINDIRECT関数の書き方がよくわからないのですが・・・
アク金はストレス溜まるなあ。 >823 は素直に =IF(AND(WEEKDAY(A2)=6,DAY(A2)>7,DAY(A2)<15),"休","")
>>838 例えばL6に「13」と入っていたとすると=INDIRECT("$A"&L6)と書けば=$A13と同じ意味になる。
L6を「20」にすれば自動的に=$A20と書き換えたのと同じことになる。
あとはこれを応用して数式に順番に代入してけばいい。
>>832 6桁じゃなくて8桁でしょ
=IF((YEAR(NOW())-(MONTH(NOW())*100+DAY(NOW())<220)-YEAR(DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2))-51)+1)>3,"該当なし"
,CHOOSE(YEAR(NOW())-(MONTH(NOW())*100+DAY(NOW())<220)-YEAR(DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2))-51)+1,"当期","前期","前々期"))
Excelのバージョンが2007以降なら式がもっと簡単にできるんで、質問する人はちゃんとテンプレ使ってね
>832 「20100614」の様な「6桁」の数値は扱いにくいので シリアル値に直してB1に入れておく(省略) IFERRORは2007以降しか使えないが 環境が書いてないから無視する。 =IFERROR(INDEX({"当期","前期","前々期"},YEAR(TODAY()-51)-YEAR(B1-51)+1),"該当なし")
843 :
834 :2010/05/18(火) 12:24:29
かなり頭わるそうだけど、実用はいけるだろ関数。 =IF(AND(A1>20080201,A1<20090220),"前々期",IF(AND(A1>20090221,A1<20100220),"前期",IF(AND(A1>20100221,A1<20110221),"当期","該当なし")))
844 :
834 :2010/05/18(火) 12:29:06
でもって、さらに頭わるいシリアル値バージョン。 A1 を VALUE(TEXT(A1,"yyyymmdd")) に書き換える…
>>842 その式だとうるう年の4月20日付近でおかしくならんか?
>>843 2010年度しか使えないので却下
>>846 あ、説明不足?
8桁の数字がシリアル値の場合…無理やり数字に置き換えて、
>>843 の式どおりに。
まぁ、指摘どおり、2010年度しか通用しないけどなw
現在日付から、8桁の誕生日な数字をひいて年齢を出すやりかたを応用できないか考えたが、
頭悪いからパンクしたw
>845 うるう年によって51日前が2月28日だったり 29日だったりするが同じ年には変わりない。 期の境が3月1日などの場合は影響があるので 逆に年末までの残りの日数を足してやる。
849 :
834 :2010/05/18(火) 12:54:52
今日は疲れてるみたいだ… 不等号だけじゃ、2/20,2/2 は必ず該当なしじゃないか…orz しばらく旅に出ます。
>>827 揮発性関数とはのべつ幕なしでいつでも再計算する関数だよ。
=A1だとA1が変更したときだけ再計算する。
=INDEX(A:A,1)だとA列のどれかのセルが変更されたときに再計算する
=INDIREC("A"&1)だと関係のないセル、関係のない他シート、関係ない他ブックのセルが変更されても
再計算する。
だからINDEXで事足りるとき、ことさらINDIRECT使うやつは馬鹿といわれてもしょうがない。
そういう無駄はおいといてINDIRECTがとくに馬鹿にされるのは汚いってのもある。
いままでの複乳のINDIRECTの回答をみれば汚いと思ってるやつは多いよ。
俺はたまに叩いてたが、俺以外でも叩いてるやついたしな。
それからケースバイケースって言うやつに限ってきちんと使い分け出来ないやつが多いから気をつけるんだな。
【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 セルAに月(1〜12)セルBに月に応じた日数を選択できるよう入力規則を利用して 選択できるようにしたいと思ってます 需要がある使い方と思いますし、定番といわれるようなやり方があるのではないかと 予想してるのですが、何かスマートなやり方がありますか?
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ $A$7 $A$7 $A$7 $A$7 ・ ・ ・ と同じ列に並んでいる式を一括で $B$7 $B$7 $B$7 $B$7 ・ ・ ・ に変換する方法ってあるでしょうか?
>>832 みたいのは表にリスト書き出してLOOKUPでも使うのが間違いない罠。
もちろん究極の最適化は
>>842 みたくなるわけだが。
855 :
名無しさん@そうだ選挙にいこう :2010/05/18(火) 21:11:16
856 :
名無しさん@そうだ選挙にいこう :2010/05/19(水) 00:16:21
複数条件で悩んでいるのですが、 A列のA2、B列B2、C列C2、D列の0か4以上でカウントしてオートフィルで下まで引っ張りたいのですが、 数式はどのようにすればいいのでしょうか? D列には数字が入っています。
「レポート」という名前の別のシートの下記のようなセルから A列 ・・・・・H列 2010/05/16 ・・・・・★ 2010/05/17 ・・・・・☆ 2010/05/18 ・・・・・★ 2010/05/19 ・・・・・☆ (空白) (空白) A列が今日の日付のH列のセルを参照したいのですが その場合「='レポート'!〜」から先がわからないのですがどのように書けば良いでしょうか? 「A列が今日の日付」なら〜という構文と 「A列が最新(下のセルが空白)」なら〜という構文の2種類お願いしたいのですが・・・ 宜しくお願い致しますm(_ _)m
860 :
Che :2010/05/19(水) 05:56:14
よーし、修行中だががんばって回答しちゃうぞ〜 同じ日付が複数行あるどダメだけど・・・ 「今日の日付」 =VLOOKUP(TODAY(),レポート!A:H,8,0) 「最新なら」(「レポート」シートのA1に「日付」等の文字がある場合 A1から日付が入ってる場合は「+1」を外してちょ。 =OFFSET(INDIRECT("レポート!A"&COUNT(レポート!A:A)+1),0,7)
おまえら難しく考えすぎ
A列に日付として成立しないようなイレギュラーな値が入っていない限り、
いちいちシリアル値に直さんでも計算できるだろ
>>832 Excel2003以前
=IF(YEAR(NOW()-51)-LEFT(A1,4)+(MOD(A1,10000)<221)<3,CHOOSE(YEAR(NOW()-51)-LEFT(A1,4)+(MOD(A1,10000)<221)+1,"当期","前期","前々期"),"該当なし")
Excel2007以降
=IFERROR(CHOOSE(YEAR(NOW()-51)-LEFT(A1,4)+(MOD(A1,10000)<221)+1,"当期","前期","前々期"),"該当なし")
【1 OSの種類 .】 Windows7 64bit (CPU core i3 メモリ4G) 【2 Excelのバージョン 】 Excel2002(officexp) 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 windows7 excel2002 スクロール 表示 遅い ここで聞いていいのか解りませんが、家ではエクセルを表計算に使わず ポップ(値札?)を作るのに使ってます。 最近PCが壊れてしまい、新しく買ったwindows7のPCにofficexpを入れました ポップは図形描画ですべて作ってます。ほとんど枠と文字のみで ちょうどバナーのような横に細長い感じの物です。 それをA4の大きさの範囲に5〜6個作って数ページびっしり作ります。 そのファイルを開くと20個位のポップが画面に出て来るんですが 1つ1つの表示が1、2秒かかり全部表示されるのがとても遅いです。 さらに、全部表示し終わっても画面をスクロールすると また表示しなおされてしまいます。 スクロールする度にピコピコ出てきて目が死にます。 何とかなりませんか?よろしくお願いします。
863 :
862 :2010/05/19(水) 11:14:43
サービスパック3入れてます
>>862 あまり聞いたことのない症状だ。
Windows XPでは素早く表示されてたってことだよね?
ツールのオプションで計算方法を手動にしてみたらどうなる?
>>862 表示倍率は100%になってる?
縮小してページ全体を見渡せるようにしてると表示が遅くなるよ。
866 :
862 :2010/05/19(水) 12:04:37
>>864 レスありがとうございます。
xpではこんな事は無かったです。
手動にしてみましたが駄目でした
>>862 簡単に言うと相性の問題。Win7とOfficeXPは相性が悪い。
解決策はOffice2010に買い換える。
Office XPはWindowsのGDIという仕組みを使って図形(オートシェイプ)を表示するように作られている。
この部分の設計がWindows Vista以降で大幅に変更されたため、Windows XPに対して最適化された
Office XPは、最新型の高速なパソコンでは逆に動作が遅くなってしまうという結果になっている。
Office 2010は無料体験版があるからいっぺん試してみ。
868 :
862 :2010/05/19(水) 12:13:30
>>865 >>867 倍率100%でも駄目でした。
2010を試してみます。
ありがとうございました。
869 :
名無しさん@そうだ選挙にいこう :2010/05/19(水) 17:14:12
excelってLOOKUP関数など「以上〜未満」は出来るのに、何故「超え〜以下」ができないのでしょうか? いや、もちろん工夫すればできますけども、いらぬ工夫だとは思いませんか? lookupなどの関数にモードを替えるような引数を増やせばスッキリとするのに「超え〜以下」の時にくだらぬ作業データなど使うのが嫌なんですよね。
>>860 ありがとうございます!
やってみましたが・・・
=VLOOKUP(TODAY(),レポート!A:H,8,0)
では「TRUE」と表示され「このセルは列の数式と矛盾しています」と注意が出ます
=OFFSET(INDIRECT("レポート!A"&COUNT(レポート!A:A)+1),0,7)
では「2101.368781」という関係ない数値が表示され↑と同様「このセルは〜」と注意が出ます
最後のAをHに変えると「0」と表示されます
A列は12行目に「日付」とあり13行目から日付の数値が入っています
H列の目的のセルとまったく同じ内容(□か■かブランク)を表示させたいのですが・・・
>>870 僕のPC(Excel2000)ではうまく行ったんだけどなんでだろう?
ちなみに「最新の」はコレでできるはずなんだけど。
=OFFSET(INDIRECT("レポート!A"&COUNT(レポート!A13:A65536)+12),0,7)
>>871 たびたびありがとうございます!
もう一度やってみたら
=OFFSET(INDIRECT("レポート!A"&COUNT(レポート!A:A)+12),0,7)
でもできました・・・が参照先がブランクの場合「0」と表示されてしまいます
ブランク表示させることはできないでしょうか?
=VLOOKUP(TODAY(),レポート!A:H,8,0)
こちらでは#REF!と表示されます
>872 数式の最後に &"" って付加すると、文字列扱いになって 0 は表示されなくなります。 結果が文字列だけ(☆、★、ブランク)だけのようなので、これでいいと思う。
874 :
873 :2010/05/19(水) 18:54:18
>859,872 今日の日付に該当する方は =INDEX(レポート!H:H,MATCH(TODAY(),レポート!A:A))&"" でどうですか? 当方、WindowsXp Excel2003
>>873-874 ありがとうございます!
=INDEX(レポート!H:H,MATCH(TODAY(),レポート!A:A))&"" でできました
「最新」のほうも&""付加でできました
Cherry ◆d/pQlCc6hA さんもありがとうございます!
助かりました!
>862,868 無料で利用できるOpen.Office.org(オープンオフィス)はいかが?
ここで聞いていいのかわかりませんが 今までWin2k( CPU PEN41.8Ghz ) 使っていて、PC購入に合わせてWindows7に変えました。 使っているエクセルは2003、CPUはCore i7 860、GPUはNVIDIA GT240です。 使ってみると、計算は速いようですが、シェイプの描画が物凄く遅いです。 よこからだらららと書いていくのが見えるぐらいで、これは異常ではないかと 単にエクセルのバージョンの問題なら諦めますが、ぐぐっても何も出てこないので 同じwindows7で使ってる方いましたら、ご助言もらえると幸いです。
>>877 あ、申し訳ない。
ちょっと上に同じような不具合が出てましたね。
バージョンの問題なら仕方がないか・・・・
880 :
名無しさん@そうだ選挙にいこう :2010/05/20(木) 14:36:13
EXCEL2003,XPsp2の質問です。 VBAを使わずに、複数のブックの中にあるシートの各セル(数値項目)を 合計したシート(ブック)を作れる機能があれば教えて下さい。 ただし、合計シートの各セルに集計対象のセルを参照した式を埋め込む 方法は除きます。 イメージ的には、集計対象のシートまたはブックを選択→串刺し計算指定 →合計を記録するシートまたはブックの指定のような手順です。 よろしくお願いします。
881 :
817 :2010/05/20(木) 16:05:05
>>818 やっと規制解除されたみたいだ。
お礼が果てしなく遅くなりました、ありがとうございます。
みんな凄いなぁ・・・どうやって勉強したんだろう。
すみませんが教えてください。 vbaで環境依存文字は使えないのですか? チェックボックスにチェックのはいった文字 で"□レ"みたいのを文字列操作関数で使いたい のですが、"?"マークがでてダメです 無理でしょうか?
883 :
複乳 :2010/05/20(木) 19:56:09
>>883 ありがとうございます(*^o^*)
できないよとダメだしされると思っていました
明日、早速やってみます
ほんとうにありがd
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ AD列に+の数値と−の数値とブランクが並んでいて その列の絶対値の合計を求めたいのですが =ABS(SUM(AD13:AD200))だと+−が合計された後の絶対値になってしまいます 絶対値の合計を求めるにはどうすればよいでしょうか?
886 :
885 :2010/05/20(木) 22:35:18
すいません・・・色々ぐぐってみましたが セル範囲はOFFSET関数で参照しているので 実際は {=SUM(ABS(OFFSET(AD1,$B$3-1,0):OFFSET(AD1,$B$4-1,0)))} こうなると思うのですがエラーが出ます・・・ OFFSETがあると{}が効かない?んでしょか?
>>885 =SUMPRODUCT(ABS(AD13:AD200))
>885,886 まさかとは思うけど、式の両端にある { と } を入力してはいませんか? =SUM(ABS(OFFSET(AD1,$B$3-1,0):OFFSET(AD1,$B$4-1,0))) [Enter]キーを押す前に↑まで入れておいて、[Shift]+[Ctrl]+[Enter]でいけると思うけど。
889 :
885 :2010/05/20(木) 22:52:04
やってみましたが#VALUE!と出ます
890 :
888 :2010/05/20(木) 23:02:56
>885,889 参照範囲内にブランク(空白でもnullでも)があると#VALUE!になりますね。 もちょっと考えてみます。
=SUMIF(AD13:AD200,">0")-SUMIF(AD13:AD200,"<0") こんなのとか
数字かどうかを判定する部分 ISNUMBER() を組み入れました。 下の式を入れて(Enter押す前で)から、[Shift]+[Ctrl]+[Enter]でやってみてください。 =SUM(ABS(IF(ISNUMBER(OFFSET(AD1,$B$3-1,0):OFFSET(AD1,$B$4-1,0)),OFFSET(AD1,$B$3-1,0):OFFSET(AD1,$B$4-1,0),0)))
皆様offset関数の第4、第5引数は使わない派ですか? =SUM(ABS(OFFSET(AD1,$B$3-1,0,$B$4-$B$3+1,1))) [Shift]+[Ctrl]+[Enter]
894 :
885 :2010/05/20(木) 23:38:56
2007です。 いちいち書式ウィンドウを出すのが面倒なのですが、下線(会計)を一発で引く方法はありますか? 「U」ボタンの機能を変更できればベストなのですが、そういうのはできなさそうなので。
質問させて下さい。2007です。 外部からコピペした表の中の金額欄が、数値ではなく半角数字文字列で入力されており、末尾に半角スペースが入っています。 (LEN関数で文字数を観測したら、数字の桁数+1になっていた。手作業で末尾の空白を消すと、数値として扱えるようになった) この金額欄の数字を利用して計算式をたてたいのですが、数が多いので何らかの方法で数値として扱えるようにしたいのです。 ただ、色々やってみたところ ・末尾の半角スペースを取り除かなければならない→TRIM関数で空白を削除したものの、VALUE関数で変換しようとしても関数を参照しているのでエラーになってしまう ・置き換えで半角スペースをなくそうとしたけど、何故か検索にひっかからない→半角スペースが取り除けない 何かいい方法ないですか?
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ A列に数値が並んでいてB列には=IF(A2>A1,"△”),IF(A2<A1,"▼"),"" (←オートフィルで下行まで) と入っているのですが 数値の増減が滑らかなカーブを描く場合 △△△▼▼▼▼▼▼△△△△△△▼▼▼▼▼▼▼▼▼▼△△△△△△ (←列として見てください) という具合に同じ三角がある程度連続して現われます 逆に数値の増減が滑らかなカーブを描かない場合 △△△▼▼△▼▼▼△▼△△▼▼△△△▼△▼▼△▼△▼▼△△△▼▼ (←列として見てください) という具合に三角がランダムに現われます 以上は視覚的にある程度判断できるのですがシート数が多くあるため この列の三角の並び方(滑らかorランダム)を調べる方法はないでしょうか? 角シート1000行ぐらいあるのですがどのような関数で調べることができるか アドバイスいただけないでしょうか? アイデアとしては ・50行ごとに3個以下の連続が幾つ含まれているかを数える ぐらいしか思いつかないのですが曲線の滑らかさを測る指標とかあるでしょうか? ヒントだけでもいただければありがたいです。
>>899 書いてから気付きましたが別に50行と区切らなくても
1000行すべてでカウントすれば良いですね
例えば「全範囲(1000行)で同じ三角が3個以下の連続(1個も一つと数える)が幾つあるか数える」
という関数はどのようになるでしょうか?
>>899 求める答えではないけど、△▲を0,1に変換して自己相関取るのが
スマートと思うよ。A1:A31に0,1のデータが入っていたら
=correl(A1:A30,A2:A31)
答えが0に近いほどランダムを表します。
すみません。マウスのポインタに対してXYの座標に色がつくマクロのサンプルはどこかにないでしょうか。 イメージとしては H40マスにポインタがあったら、H列と40行全部に色がつき、H40でクロスするといったものです。 当然マウスを動かすと移動するものです。ぐぐったんですがサンプルがなかなかなくて困っています。 エクセル2003でうごけばいいです。
903 :
名無しさん@そうだ選挙にいこう :2010/05/21(金) 10:58:03
セクセルに詳しい方助けてください =IF(COUNTIF(C2:C31,"<30")=0,"",COUNTIF(C2:C31,"<30")) はちゃんと数値が出るのに =IF(COUNTIF(C2:C31,"<c33")=0,"",COUNTIF(C2:C31,"<c33")) はちゃんとした数値が出ません。 何が悪いのでしょうか?
904 :
903 :2010/05/21(金) 11:12:14
ヤフー知恵袋の勝ちということで 無事解決しました
>898 >置き換えで半角スペースをなくそうとしたけど、何故か検索にひっかからない→半角スペースが取り除けない 置き換えダイアログで、検索側の欄に自分で半角空白を入れるのではなく、コピペでもダメでしたか? 特殊文字(改行などの制御文字)かもしれないですね。 末尾の「空白のようなもの」の文字コードを調べてみたら? =CODE(RIGHT(A1,1)) ←A1セルの文字列右端の「空白のようなもの」の文字コードが表示される =CODE(" ") ←半角スペースを自分で入れた文字コードが表示される
>>897 Sub 会計下線()
Selection.Font.Underline = xlUnderlineStyleSingleAccounting
End Sub
ツール→ユーザー設定→コマンド→マクロ→ユーザ設定ボタン
で、そのボタンに上のマクロを割り当て、ツールバーに追加するとか?
私だったらctrl+zとかのショートカットキーを割り当てるけど。
>>902 ポインタじゃなくてセルを選択してないと出来ないけど・・
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
'選択セルの行列に色をつけます。
Cells.Interior.ColorIndex = xlNone
r = Target.Row
co = Target.Column
Rows(r).Interior.ColorIndex = 36
Columns(co).Interior.ColorIndex = 36
End Sub
>>901 ありがとうございます
相関係数 CORREL ・・・2つの配列の相関係数を返します。
これは調べる範囲が1000行ある場合
=correl(A1:A999,A2:A1000) とすれば良いのでしょうか?
それとも=correl(A1:A30,A2:A31) をオートフィルで下までという形でしょうか?
909 :
複乳 :2010/05/21(金) 20:02:00
>>898 >>905 の言うとおり制御文字か何かだろう
それをコピーしてsubstituteでもいいけど
=LEFT(A1,LEN(A1)-1)*1
でよくない。ちなみに*1は数値にするためのもの
910 :
複乳 :2010/05/21(金) 20:02:52
>>902 Worksheet_mousemoveなんてあればいけるんだろうけど
↓は
http://yunatip.exblog.jp/175815と >>907 の合体。
'↓標準モジュールに記述
Public Type POINTAPI
X As Long
Y As Long
End Type
Public Declare Function GetCursorPos Lib "USER32" _
(lpPoint As POINTAPI) As Long
Public Declare Function SetCursorPos Lib "USER32" _
(ByVal X As Long, ByVal Y As Long) As Long
'↓sheet1に記述
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim poi As POINTAPI
Dim mycl As Range
Call GetCursorPos(poi)
Set mycl = ActiveWindow.RangeFromPoint(poi.x, poi.y)
Cells.Interior.ColorIndex = xlNone
r = mycl.Row
co = mycl.Column
Rows(r).Interior.ColorIndex = 36
Columns(co).Interior.ColorIndex = 36
End Sub
911 :
901 :2010/05/21(金) 21:34:14
>>908 元データがどんな系列か、また何を解析したいかの最終目的次第だと思う
(もし教えて下さればより明確な答えが出るかも)
ある数nまでの周期性が存在するか調べたいなら、ラグをn
まで取った自己相関を調べると良いよ。
n=10とすると、データがA1:A1000に入っているとして、
C1:C10に1〜10を入れて
D1に=correl(offset($A$1,0,0,1000-C1):offset($A$1,C1,0,1000-C1))
これをD10までコピー。
912 :
908 :2010/05/21(金) 21:59:31
>>911 ありがとうございます。
調べたいのは株価に関する数値(以下Z値とします。株価そのものではありません)です。
Z値がどのように変化しているのか各銘柄ごとに調べて
もし△△△▼▼▼▼▼▼△△△△△△▼▼▼▼▼▼▼▼▼▼△△△△△△
のような変化ならZ値が滑らかに上昇下降しやすい銘柄
あるいは△△△▼▼△▼▼▼△▼△△▼▼△△△▼△▼▼△▼△▼▼△△△▼▼
という変化ならZ値が不規則にに上げ下げを繰り返す銘柄
というふうに銘柄ごとのZ値の動きのクセを調べたいというのが目的です。
そして複数銘柄のZ値の動き方を数値化できればそれを比較して
滑らかな動き〜不規則な動きという具合にグループ分けするのが最終目的です。
理系の知識が殆どなくつたない説明で申し訳ありませんが
アドバイスいただければありがたいです。
【1 OSの種類 .】 WindowsXP SP2 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 不可 【5 検索キーワード 】 IF文 宜しければ知恵を授けてください… A B 1× ▲ 2× × 3× × 4× ● =IF(OR($A$1<>"×",$A$2<>"×",$A$3<>"×",$A$4<>"×"),"OK","") A1〜A4までが全て×の時は、""にしてB1〜B4の様に×以外がある場合は "OK"と表示させているのですが、セル一つ一つを指定して判定してる為 20コ、30コっとなってくると非常に大変な事になってしまいました。 ↑の式をIF(OR($A$1:$A$4)<>"×"),"OK","") の様に範囲で指定する方法はないでしょうか? 宜しくお願いします。
914 :
901 :2010/05/21(金) 23:07:50
>>912 ,908
「滑らかに上昇下降」や「不規則に上げ下げ」や「動きのクセ」の定義(計算方法)
をお伝え頂ければ、手段としてのExcelの解法をお伝えできますが・・・。
これ以上はExcelとは関係ない内容でスレ違いですから、どこか
誘導していただければそちらで答えられるかもしれません。
>913 =IF((COUNTIF(A1:A20,"×")-ROWS(A1:A20))=0,"","OK") ではどうですか?
916 :
915 :2010/05/21(金) 23:19:44
別に引き算しなくてもよかった =IF(COUNTIF(A1:A20,"×")=ROWS(A1:A20),"","OK")
>>915 あんなに悩んでいたのが嘘のようです。
そうかCOUNTIFで個数数えてセルと同数なら・・・って考えれば良かったんだ
柔軟な発想がとても羨ましいです。
本当にありがとうございます。
>917 ヒントは少し前の質問といくつかの回答にありました。 >885-894 を見てください。
919 :
908 :2010/05/22(土) 02:12:33
>>914 もう少し考えをまとめたいと思います。。。
アドバイスいただきありがとうございました。
920 :
複乳 :2010/05/22(土) 10:54:00
>>912 数学板で聞いたほうがよさげ
まぁ1行目にあるなら
=(A1<>B1)*1
で横にオートフィルして合計。こうすれば変化した回数がわかる
? ??
>ctrl+zとかのショートカットキーを割り当てる へぇ〜
Ctrl+zはよく使うからまずいだろ
924 :
複乳 :2010/05/22(土) 16:04:33
使いにくかったら勝手に変えるんじゃないすか
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 少々 マクロの自動記録で、B1セルをクリックするとこんな感じになります。 Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2010/5/22 ユーザー名 : Kimura Saori ' ' Range("B1").Select End Sub デフォルトで、コメント行を出なくする方法がありますか? また、ツール→オプション→編集で、自動インデントのタブ間隔を2にしましたが Range("B1").Selectの前には半角スペースが4個ぶん入ってます。 自動記録では対応できないのでしょうか?
927 :
名無しさん@そうだ選挙にいこう :2010/05/22(土) 18:01:51
【1 OSの種類 .】 Windows XP Pro 【2 Excelのバージョン 】 Excel 2003 sp3 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】エクセル 複数の列 削除 一斉に削除 とびとび エクセルで、飛び飛びになっている複数のセルを一気に削除したいのですが、 マクロを組むしかないでしょうか? ちなみに,OSはXP Pro エクセルのバージョンは2003 SP3です。 エクセルでは、シフトの代わりに、ctrlキーを押しながらだと、複数の列が選択できますが、 同時に、右クリックの操作(特に削除がしたい)したり出来ません。 [行列全体またはセルを含む選択範囲に対して、そのコマンドは使用できません。 行全体、列全体、または一つのセル範囲を選択し、再度実行してください。] というメッセージが出ます。
928 :
927 :2010/05/22(土) 18:02:49
家電量販店の販売実績の表を例に教えてください 週刊販売達成率を、一気に削除したいのですが。 (B,E,G・・・・列を同時、若しくは固定して削除したい。) ○ ○カメラ、家電販売達成率 A B C D E F G H I J デジカメ パソコン ブルーレイ 週間 月間 累計 週間 月間 累計 週間 月間 累計 今田 東野 加藤 板尾
929 :
927 :2010/05/22(土) 18:03:34
「マクロを記録する」方法でやってみたのですが、 削除する時に一行ずつずれてしまうため、 マクロを実行すると例えば、パソコンとブルーレイレコーダーの列しか残らなくなってしまいます。 (最終的に、デジカメの列は削除されてしまうため) 念のため、絶対参照しながら、デバッグでマクロを書き換えてみたのですが、無理でした。 (記録に使用したシートでは出来るのですが、別のシートでは出来ませんでした) 「列の位置(記号)は、一緒です」 シートの指定(sheet1)とかを書き換えれば出来るのでしょうか? それとも参照する列を固定する必要があるのでしょうか? 長くなりましたが、お願いします。
>>929 >削除する時に一行ずつずれてしまう
マクロの記述を読み解いて修正すればズレなくなるのでは?
931 :
名無しさん@そうだ選挙にいこう :2010/05/22(土) 18:27:36
>>930 ありがとうございます。
一応やってはみたんですが。VBAというのが使えないんで、
ちなみに、「ずれる」というのは、例えばE列を削除すると、
「F列がE列に」来るということです。
>>931 そのマクロは列を削除するマクロを記録しちゃっているんだね。
”数式と値をクリア”で記録し直せばいいよ。
>>931 削除じゃなくて「delete」すればいいじゃない
「削除」も「delete」も同じだぞwwwww
>>931 Ctrlを押しながら消したい範囲を選択したあと、キーボードの「Delete」と書かれたキーを押してみ
機種によっては「Del」と略して書いてあることもある
>>934 エクセルに慣れている人であれば、deleteキーを使うのと「削除」の違いが分かる。
説明としては不親切だったとは思うけど、エクセルでは大きな違いなんだわ
938 :
複乳 :2010/05/22(土) 19:29:34
>>927 A列が歯抜けとすると
B1=IF(A1<>"",ROW(),"")
下にオートフィルタ
B列で並び替え
並びかえの基準を作って並びかえ、↓にたまったものを一期に削除というのが楽だよ
>>931 列、行の削除をする場合は、後ろから削除が基本
>>928 の場合だと、G,E,B列と削除する
ttp://uproda.2ch-library.com/248014acv/lib248014.jpg このような表で、黄色いセルのグループを下に足していって、水色のセルに
=C11+C18+C25という計算式を入れて合計を出したいのですが、
足していくグループ数が変わっても対応できるようにするにはどう書けばいいですか?
(水色のセルには計算結果ではなく、計算式を入れたい)
Sub Macro1()
n = 7
e = "=R[7]C+R[14]C+R[21]C"
For j = 1 To 6
For i = 2 To n
Cells(2 + i, 2 + j) = e
Next i
Next j
End Sub
941 :
複乳 :2010/05/22(土) 21:14:51
>>940 c4=SUMIF($B$11:$B$65535,B4,$C$11:C65535)
どうしてもVBAというなら最終行を取得(マクロの記録でctrl+↑)してFornextにstepを使えばいいんじゃないかな
942 :
名無しさん@そうだ選挙にいこう :2010/05/22(土) 21:15:11
>>940 遊んでみた
Sub aaa()
Dim maxRow As Long
Dim siki As String
Dim i As Long
maxRow = Cells(Rows.Count, 3).End(xlUp).Row
maxRow = maxRow - 3
For i = 7 To maxRow Step 7
siki = siki & "+r[" & i & "]c"
Next i
siki = Replace(siki, "+", "=", 1, 1)
Range("c4:h8").Formula = siki
End Sub
944 :
940 :2010/05/22(土) 22:17:58
>>944 >>943 はVBAを使ってワークシートに数式を書き込んでるんだよ
実際の計算は数式の方でやってる
最近買った外付けテンキーに イコールキーがついていたんですが、 実際に普通のキーボードでどれを押したときに相当するんでしょうか? 他のソフトでは押しても何も出ません
949 :
名無しさん@そうだ選挙にいこう :2010/05/23(日) 00:17:14
漢字の文字列がいっぱいセルにあって すべてを一括でとなりのセルにひらがな変換する方法はありますか? phonetic関数では失敗だったので各データにひらがな情報は入ってないみたいです。 もちろん完璧変換は期待してないです。
950 :
複乳 :2010/05/23(日) 00:43:54
>>949 その漢字のセルを選択→ふりがな→編集→Enter
で、とりあえず変換する。が、編集の時に正確な仮名に修正するもよし。
952 :
951 :2010/05/23(日) 00:54:46
phonetic関数で変換しない場合は、 こうすれば変換するよってことで。
953 :
951 :2010/05/23(日) 00:58:59
>>952 じゃうまく伝えきれてないな。
phonetic関数で変換しない場合は、
>>951 を行えば
phonetic関数で変換出来るよってことで。
ある行の数値の合計を求めたいのですがSUMを使うと その行に全く数値が入っていない場合0と表示されてしまいます 行に全く数値が入っていない場合はブランクとし 行に数値が入っていて計算後0となる場合は0と表示したい場合 どのような関数を用いれば良いでしょうか?
>>954 こんな感じ。
=IF(COUNTA(ある行)<>0,SUM(ある行),"")
>>955 ありがとうございます
やってみましたがやはり0と表示されてしまいます
あと対象の行には文字の入っているセルもあります
(文字も入っていない行でも0と表示されてしまいます)
>>954 =IF(SUM(ある行)=0,"",SUM(ある行))
>>957 行に数値が入っていて計算後0となる場合は0と表示したいので・・・
>>954 =IF(COUNT(ある行)=0,"",SUM(ある行))
961 :
940 :2010/05/23(日) 13:48:15
>>945 数式を書き込んでるのは分りますが、
siki = Replace(siki, "+", "=", 1, 1) と Range("c4:h8").Formula = siki の意味がよくわからなくて・・・
Replace
指定された文字列の一部を、別の文字列で指定された回数分で置換した文字列を返します。
Formula
セルに定数が入力されているときは、Formula プロパティはその定数を返します。セルが空のときは、空の文字列を返します。セルに数式が入っているときは、数式バーでの表示と同じ形式で、等号を含む数式を文字列として返します。
962 :
940 :2010/05/23(日) 13:50:08
>>950 勉強のため、漏れてた箇所を教えてください。
>>961 Replaceする前 → +r[7]c+r[14]c
ここで先頭の「+」を「=」に置き換えると =r[7]c+r[14]c
となって数式になる。R1C1形式の数式だからちょっとわかりにくいけどプログラムで使うには便利な書き方。
Formulaの説明は読む場所を間違えてる。それは右辺の説明。ここでは左辺に使っている点に注意。
左辺に使ったときは数式を書き換えることができる。
964 :
名無しさん@そうだ選挙にいこう :2010/05/23(日) 14:16:08
965 :
949 :2010/05/23(日) 14:57:07
>>950 どうも、できました。
参考までに下で読みをたしかめると「フクチチ」と出たのですが、合ってますか?
Sub gg()
MsgBox Application.GetPhonetic("複乳")
End Sub
>>951-953 ?
いや実は、漢字のデータが大量にあってそれを効率的にひらがなにする方法を考えてたわけで、いちいち1つ1つ編集するのでは意味ないので。
966 :
名無しさん@そうだ選挙にいこう :2010/05/23(日) 14:59:45
いつも何気なく使ってたのですが、「FormulaR2D2」の「R2D2」ってどういう意味があるのですか?
スターウォーズに出て来るロボットですね
968 :
名無しさん@そうだ選挙にいこう :2010/05/23(日) 15:29:18
C3PO(´・ω・`)
969 :
名無しさん@そうだ選挙にいこう :2010/05/23(日) 16:13:20
WinXPで、Excel 2002を使ってます。 エクセルを起動したときに、セルの色を塗りつぶすバケツみたいなマーク 『塗りつぶしの色』が、いつも黄色で起動します。 エクセルを起動時に、塗りつぶしの色を青にしたいのですが どうすればいいのでしょうか? 教えて下さい m(_ _)m
>>969 ブックごとの設定になるけど、ツール、オプション、色の黄色のところを変更すれば、
そのブックを開いたときだけ設定した色になる。
どんなブックでも青にしたいならテンプレートかVBA。
971 :
927 :2010/05/23(日) 18:12:21
>>932-937 delete
したいのではなく、列そのものを削除したかったんです。
938,939さんありがとうございます。
助かりました。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 使えません 13行目 1.5 2.5 3.1 1.9 2.7 1.2 2.3 15行目 3 6 2 7 3 上のような表で 「15行目の数値を合計する」 「ただし合計するのは同じ列の13行目の数値が大きいもの上位3つのみ」 という式が欲しいのですがどのようになるでしょうか?
上位3番目までに同位があったら・・・・ =SUMPRODUCT((RANK(A13:G13,A13:G13)<=3)*A15:G15)
974 :
940 :2010/05/23(日) 19:47:21
>>963 >>964 ご丁寧に説明してくださり、ありがとうございます。
しかし凄いですね。こんなアイデアは思いもつきませんでした。
=
>>973 やってみましたが#N/Aと出ます。。。
>>975 NAがでるのは配列が揃っていない時が多いよ。チェックしてみて
>>976 >972の各数値列の間にブランク列があるのですがそれが原因でしょうか?
15行目の数値の左に記号が入っていてその列が各数値間に挟まってます
>977 1行下に作業行を設けることはできませんか? =IF(ISNUMBER(A15),A15,0) をA16に設定し、右へフィルコピーした上で、 =SUMPRODUCT((RANK(A13:G13,A13:G13)<=3)*A16:G16) ではいかが?
>>799 です
>>800-804 の皆様、お礼が遅くなりましたが、ありがとうございます。m(_ _)m
あの後、自分でも試してみて、思ったとおりの動作をしてくれたのですが、
式の中に出てくる、*3や+7、-30とかの数字がどこからでてくるのか、何を表すのかがわかりませんでした。orz
本当に申し訳ありませんが、これらの数字が何を表しているのか教えて頂けると非常に助かります。。
何卒ご教授の程、よろしくお願い致します。
>>978 たびたびすいません。
15行目と同様の行が200行ほど続いていまして
その各行で同じ計算をしたいので・・・
元の表から作りなおした方が良いでしょうか
>>979 ごめん回答したけど、どんな表だっけ(´・ω・`)?
10行目から飛び飛びに3行おきのデータを見るんだよね・・・?
=INDEX(D:D,ROW(A1)*3+7,0)
ROW(A1)は「1」 1*3+7で10
下にいっこずれると
ROW(A2)は「2」 2*3+7で13 ・・・・って感じ
INDEXのD列の中で10、13、16・・・行目を見ていけってこと
982 :
複乳 :2010/05/23(日) 22:42:58
>>962 C65535 → $c$65535
行は65535までしかない。これ以上増やそうとしたのでエラーになった
>>965 あってるよ
後は応用だけど、もう面倒なので作った。A1:A100に漢字のデータを貼付け。B1:B100に読み方が出る
Sub gg()
Dim i
For i = 1 To 100
Cells(i, 2) = Application.GetPhonetic(Cells(i, 1))
Next
End Sub
983 :
978 :2010/05/23(日) 22:59:53
>980 ブランク(半角or全角の空白がある)なセルも含め、全てのデータから空白を削除できませんか?(置換機能にて) そしたら作業行は不要になるはずですが。
>>983 時間掛かりそうですがやってみます
それと
>>978 の式で*が入っているのですがこれは積を求めることになるのでしょうか?
15行目の合計が求めたいのですが・・・
985 :
940 :2010/05/23(日) 23:30:15
987 :
986 :2010/05/24(月) 00:15:49
>986の自己訂正 * は結果的に論理積になるだけで、普通にかけ算です。 (RANK(A13:G13,A13:G13)<=3)の部分が論理式となるので、かけ算のときは1or0になるので、 結果的にA13:G13のなかのトップ3の部分だけが1,他は0になる →A16:G16のそれぞれに1or0をかけたものの和(SUMPRODUCT)が答えになるということです。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 初心者レベル 下記Aのような表で、セルの色をツール-オプション-色で細かく調整して色分けしてあります。 これをオートフィルタでBのように抽出し、この状態をマクロボタンを押して新規のブックにして 保存したいのですが、抽出してないデータも一緒にコピーされたり、セルの色も初期状態に 戻ってしまい、マクロボタンも一緒にコピーされてしまいます。 ----- A -------------- 支店 計画 実績 青森 300 256 福島 120 111 千葉 550 563 岐阜 330 299 鳥取 120 132 --------------------- ===== B ============== 支店 計画 実績 青森 300 256 千葉 550 563 岐阜 330 299 ===================== 抽出した部分だけをコピーし、セルの色を引き継ぎ、マクロボタンを消すには どうすればいいですか? Sub 保存() Sheets("Sheet1").Copy ActiveWorkbook.SaveAs "C:\data\" & "test.xls" End Sub
989 :
名無しさん@そうだ選挙にいこう :2010/05/24(月) 01:39:02
マクロで、日付の変数で、1か月分後の日付を計算するにはどうすればいいですか? 日にちなら単純に1を足せばいいけど、月だとうまくできないので困っています。 関数じゃなく、マクロでお願いします。
>>989 31日の一ヶ月後は?たとえば1月31日の一ヶ月後は?
991 :
989 :2010/05/24(月) 07:52:31
2月31日
992 :
989 :2010/05/24(月) 07:53:53
というか月までしか表示しないからそんな計算しなくていいのだ
>988 抽出した部分だけのコピー、セルの色を引き継ぐ、マクロボタン(とマクロ)は引き継がない ということならば、 シートのコピーではなく、シート上の全セルをコピーする方法ではどうですか? マクロの自動記録で下記の手順を記録してみてください。 1 全セル選択(A1セルの左上部分をクリック) 2 メニュー−編集−コピー(右クリックからの操作でも可)→ここでオートフィルタの結果だけになる 3 メニュー−ファイル−新規ブック 4 セルカーソルがA1にあるのを確認してメニュー−編集−貼り付け 5 A1セルをクリック 6 メニュー−ファイル−名前を付けて保存 セルの色と罫線は引き継がれますが、行の高さ、列の幅の情報は引き継げないようなので、 必要によりVBAで設定が必要になります。それと、ページ設定も引き継げません。 もっといい方法があるかもしれませんが、誰かアイデアをだしてくれるでしょう。
行の高さは左端の行番号を選択して行全体をコピペすれば引き継がれます。 列の幅は形式を選択して貼り付けの中に「列幅」というのがあります。 印刷書式を引き継ぐ方法は、プリンターの機種を限定すればできますが、 汎用の方法はありません。ブックごとコピーする必要があります。
995 :
名無しさん@そうだ選挙にいこう :2010/05/24(月) 13:29:25
78
996 :
名無しさん@そうだ選挙にいこう :2010/05/24(月) 14:42:05
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 フォームコントロール 連動 御願いします。 シート1にあるフォームコントロール(チェックボックス1)に、 チェックをつけると、 シート2にあるフォームコントロール(チェックボックス4とフォームコントロール(チェックボックス5) も連動してチェックが付き(シート1のチェックを外すと4と5も外れる)、 かつシート2のA1セルに○を入力するといった 方法をとりたいのですが、どのように記述(VBA)したら良いでしょうか?
997 :
名無しさん@そうだ選挙にいこう :2010/05/24(月) 15:11:36
>>988 コピーしてから削除が早いな。全てのボタン(shapes)を削除
不可視セルのD列に1を付け、fornextでstepを-1。D列が1の行を削除
と思ったら不可視セルの判定方法が分からなかった。hiddenプロパティが何故か取得できない。。悔しいっ(ビクビクッ
プログラム板のvbaスレに行ってみては?
>>996 シートaとbを用意、それぞれにcheckboxを一つずつ用意
'Sheet1(a) に記述
Private Sub CheckBox1_Change()
Call unko
End Sub
'標準モジュールに記述
Sub unko()
Sheets("b").CheckBox1.Value = Sheets("a").CheckBox1.Value
End Sub
これでcheckboxが連動する。後は何とかなるだろう
埋め
1000ならVBAマスター\(^o^)/
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。