▼━ 答えやすい質問のしかた ━━━━━━━━━━━━━━━━
★1 質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★2 要望は具体例や図を使って明確かつ具体的に。
★3 質問前に
>>2-1000 あたりの注意書きやQ&Aも読もう。
★4 質問テンプレは必須じゃないけど、
OSやExcelのバージョン、VBAの可否など(下記テンプレ1〜4の情報)は必須情報。
これを書かなかった場合は、以後まともな回答が付かなくても文句言わないでね。
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類 .】 Windows**
【2 Excelのバージョン 】 Excel**
【3 VBAが使えるか .】 はい・いいえ
【4 VBAでの回答の可否】 可・否
【5 検索キーワード 】 Googleやヘルプでの検索キーワード
※【4】は、VBAはわからないけどコード書いてくれるならVBAでもいいって場合は「可」
VBAを使うのは避けたいって場合は「否」にしましょう。丸投げする場合は、必要に応じてブックをアップすること。
前スレ:
http://pc8.2ch.net/test/read.cgi/bsoft/1161574770/
▼━質問時の注意・決まり事 ━━━━━━━━━━━━━━━━━ ・1 現行スレ内で既出の質問が無いか、ページ内検索をしよう。(Ctrl+F) ・2 図やコードを書く場合、TABや連続する半角スペースは無視されるので注意 ・3 VBAコードを貼る場合は、部分的に伏せたり省略したりせずに全て貼りましょう。 ・4 2回目以降の質問では名前欄に初回質問の番号を入れよう。 ・5 回答内容でわからない部分があっても、すぐに聞き返さずにヘルプやGoogleなどで検索しましょう。 ・6 バグ・動作上の不都合・仕様に関する質問などはマイクロソフトのサポートを受けましょう。 ここは技術的な質問のみで。 ・7 VBAはプログラム言語のVisualBasic(6以前)に近い処理が可能で Excelに関係ないことも出来ます。 Excelの操作に関係ない部分は、スレ違いなのでここで聞かずにVB言語やAPI、COMについて自分で勉強し、 どうしてもわからない部分はVBスレやAPIスレなどの該当スレで質問しましょう。 但し向こうはプログラマのスレなので、構文規則などの最低限の事は覚えてから質問しましょう。 ここみたいに丸投げはダメですよ。 ・8 うまくいかなかったにしても自分でやってみたこと(組んだ数式やコード)は書きましょう。 例えエラーになる式やコードでも、何をやりたいのかを的確に把握する手がかりになります。 その上で、どううまくいかないのかを具体的に書きましょう。 エラーが出るなら、何処でどういうエラーが出るのか、 想定外の結果が出るなら、条件と想定上の結果、実際の結果などを詳しく書いてください。 ・9 マルチはダメ。 ・a テキストボックス(エディトボックス)、コンボボックス(ドロップダウンリスト)、リストボックス、コマンドボタン、 チェックボックス、オプションボタン(ラジオボタン)、スピンボタン、スクロールバー、等の質問をするときは、 ユーザーフォーム、コントロールオブジェクト、フォームオブジェクトのどれなのかを必ず書くこと。
★注意1 テンプレを使わないのも、情報を出さないのも自由です。 ただし後出しの情報に延々と付き合っていたら他の質問者に迷惑が掛かるので 回答は最初に出された条件のみを元に行われることもあります。 指摘されてから質問し直しても無視されることがあるので、 そういう扱いをされるのが嫌なら、きちんと情報を書きましょう。 ★注意2 VBAを知りたてでプログラミングまでは出来ない人は、 VBAが高機能なのをいいことに、いろんなことをVBAでやろうとする傾向がありますが、 Excelのブック、シート、およびシート上に配置されたオブジェクトの操作以外は スレ違いなのでここで質問しないでください。 ユーザーフォームについても、VBとVBAで違いがある部分以外はVBの分野です。
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法) ▼環境・書式 ・ 列数を256列以上、行数を65'536行以上に増やす (Excel2007では16'384列、1'048'579行扱える) ・ 条件付き書式を3つ以上設定する (文字色だけなら、入力規則でも3つ設定可能。それ以外はVBA) ・ 行の高さを0.25きざみ以下の単位で指定する ・ セル内の文字を○で囲む、一部のみ2段にする (オートシェイプ、オブジェクト) ・ オートフィルタで英字の大小文字を区別する (小文字 → 半角、大文字 → 全角、と使い分ける) ・ 祝日を判断する (作業セルに祝日を列挙、VBA) ・ 同一列内でセル(行)ごとに列幅を変える、同一行内でセル(列)ごとに列高を変える (セルの結合) ・ ヘッダー・フッターのページ番号の開始番号任意指定、ページ番号演算、同シート内で違ったものを指定など ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する ・ 罫線幅の自由指定 ・ 表示形式で「10/ 1」といった書式を指定し、日付が一桁の場合のみ日付の前にスペースを入れる (TEXT関数、VBA) ・ 書式設定の「折り返して全体を表示する」と「縮小して全体を表示する」を同時に使う (折り返しを有効にして、手動で文字サイズを調整) ▼操作 ・ ファイラーの右クリックメニューからの新規作成で、Excelで設定したシート数のブックを作る (任意のシート数のテンプレートを作成) ・ 複数シートを選択して入力規則やシートの保護を設定する (VBA) ・ オートコンプリート機能を、別列や離れたセルで動作させる (VBA) ・ 選択範囲から一部を除く、Ctrlを押しながらの複数選択で一部を取り消す (VBA) ・ 優先キーを3つ以上指定しての並べ替え (優先度の低い方から順に並べ替える) ・ 1セルを分割 (分割したいセル以外を結合)
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法) ▼数式・関数 ・ 表示形式以外の書式の取得設定、書式情報を条件とする数式 (ユーザー定義関数) ・ 関数式でセルの選択状態を取得する (VBA) ・ セルの値でパスを補完して、開いてないブックのセルを参照する (VBA) ・ 入力したセルに結果を返す (VBA) ・ 数式を入れたセル以外に結果を返す (VBA) ・ 範囲を引数にしての文字列連結 (ユーザー定義関数) ・ 値の書き換え、値の保持 (VBA) ・ 複数の結果を抽出、不定な数の結果を返す (VBA、結果の最大数が解っていれば最大数以上の式を論理式で組む) ・ 空白のセルの部分を上詰め、左詰めなどで表示する (作業セルを使って別セルに詰めて表示なら可能、それ以外はVBA) ・ VLOOKUP,HLOOKUP,MATCH等の関数で、検索語を全半角両方にマッチさせる (ユーザー定義関数) ▼VBA ・ ExecuteExcel4Macroの参照で空セルと0値を区別する ・ セルの値や変数値で直接変数名を指定する (配列、コレクション) ・ VBのコントロール配列と同じような操作をしたい (イベント以外ならコントロール名を「同名+連番」にしてControls(名前 & インデックス)で処理、イベントはクラスでWithEvents) ▼ユーザーフォーム ・ フォーム上から変更したプロパティ値の保持 (シートや外部ファイルに書き出して、次回読み込む) ▼グラフ ・ 棒グラフでひとつだけ突出したデータがあった場合に波線を入れて位置を合わせる (オートシェイプなどで見た目だけそうなるように弄る、別アプリでグラフを作り、オブジェクトとして挿入) ┌┐ 〜〜 ||
上記 「Excelで出来ないこと、仕様上の制限」 は、一般的に出来ないとされていること、出来ないと思われるものです。 間違いがある可能性もあるので、上記に挙がってるもので「コレはこうすれば出来るよ」というものがあったらご指摘ください。 また、ここに書かれてないことでも、Excelで出来ないことはたくさんあります。 ここに書かれてないからといって必ず出来るはずだなんて思わないように。
スレ立てついでに前スレ
>>994 へ
COUNTIF($A$1:A1,A1)
8 :
994 :2006/11/30(木) 00:44:49
0時を24時と表示したくて[hh]にしたら、1時が25時になっちゃった。(グラフの時間軸の見出しなのでセル単位で書式を指定できない) 7時から翌7時までの来店数のグラフで、23時の次が24時でその次が1時に表示する方法あります?
[hh]じゃなくて、hhでどうっすか
11 :
名無しさん@そうだ選挙にいこう :2006/11/30(木) 03:37:38
12 :
名無しさん@そうだ選挙にいこう :2006/11/30(木) 08:52:47
EXCEL VBAのプログラムはエラーが発生して中断した時、 変数の値が見えるようになっていますが、 この機能が働かないようにするには、どうすれば良いのでしょうか。 大量の計算処理のため長時間かかるプログラムのオーバーヘッド を減らしたいのですが。
13 :
名無しさん@そうだ選挙にいこう :2006/11/30(木) 09:27:38
Excelの膨大なデータを半分に間引くにはどうすればいいんでしょうか?
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 エクセル 勝手に 縮小 画像 ペイントブラシの画像をエクセルにコピーすると、勝手に縮小されてしまうのですが、 回避する方法はありますでしょうか? また、エクセルの画像をペイントブラシにコピーした際も、縮小されてしまいます。 HTMLの操作マニュアルを作成しているのですが、 画像に番号を付与するためにエクセルを使用しています。
15 :
名無しさん@そうだ選挙にいこう :2006/11/30(木) 10:48:33
>>13 君の質問から推察できるのはここまで
「半分選択して削除する」
16 :
14 :2006/11/30(木) 11:02:52
すみません。「形式を選択して貼り付け」で、 エクセルにコピーする時のサイズはそのままになりました。 但し、これをペイントブラシにコピーすると、やっぱり小さくなってしまいます。 とりあえず、Webページで保存をして、そこから画像ファイルを取り出すことにします。
前スレ
>>994 つ countif(A$1:A1,A1)
18 :
名無しさん@そうだ選挙にいこう :2006/11/30(木) 12:20:20
オメコしたい END
10コ前のレスも読まない奴
20 :
名無しさん@そうだ選挙にいこう :2006/11/30(木) 13:16:02
エクセル2003で、セルに任意の指定した文字が含んでいた場合に、指定した文字を返すにはどういう関数にるんですか?
22 :
名無しさん@そうだ選挙にいこう :2006/11/30(木) 13:35:54
>>12 cかなにかあなたの得意な言語でDLLをかくことをお勧めする
vbは「大量の計算処理」にむいてないよ
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 表示形式 繰り返し ・ excelのヘルプで、 「値の後に、特定の文字がセル幅に達するまで繰り返し表示されるようにするには、 数値書式部分の中にアスタリスク (*) を指定します。 たとえば、数字に続けて - を繰り返し表示するには、「0*-」と指定します。」 と説明があるのですが、この例の0*-だとちゃんと表示されるのに @*・に変えると「入力した表示形式が正しくありません」と怒られてしまいます。 @*"・"としてもダメでした。任意の文字の後に、セル幅いっぱいまで・を表示させたいのですが・・・ 基本的すぎる質問で申し訳ありませんが、どなたかアドバイスをお願い致します。
A1に10 A2に20 と数値が入っている状態で A3に10月20日と表示するには どうしたらいいでしょうか? よろしくお願いします
>26をそのまま読めば =A1 & "月" & A2 & "日" >12 状況が良くわからん。ON ERROR で処理できんのか。
29 :
名無しさん@そうだ選挙にいこう :2006/12/01(金) 02:12:05
今より快適にExcelライフを送る為に PCの拡張を考えているんですが、 どの部分を拡張すると良いですか? ご意見聞かせて下さい。 以下は現在の環境です。。。 OS WindowsXP Excel 2003 CPU AMD Athlon64 3000+ RAM 1GB VBA 使えます Webクエリは数分おきに更新してます。 取得した値は、色んなセルで参照してます。 Webクエリの更新にはVBAは使ってません。
30 :
29 :2006/12/01(金) 02:13:07
>>29 最初の2行が抜けてしまいました。
大変失礼しました。
Excelを日常的に使用しているんですが、
Webクエリ更新中にPCがかなり重くなります。
今より快適にExcelライフを送る為に
PCの拡張を考えているんですが、
どの部分を拡張すると良いですか?
ご意見聞かせて下さい。
以下は現在の環境です。。。
OS WindowsXP
Excel 2003
CPU AMD Athlon64 3000+
RAM 1GB
VBA 使えます
Webクエリは数分おきに更新してます。
マルチモニタが抜けてるぞ
あと、マルチコアとかのCPUにするとか。 論理、物理どちらでもいいが、CPU1つだと 複数処理している場合、処理の低下は致し方ない。
回答ありがとうございます。
>>31 マルチモニタ、初めて知りましたが、
かなり作業効率が上がりそうですね。
対応してるかどうかは、ビデオカードで
判断すればいいんでしょうか?
因みにビデオカードは↓です。
Sapphire RADEON 9600 128MB (TVOut+DVI)ファンレス
>>32 マルチコアのCPUですか。
是非導入してみたいと思います。
論理、物理と云うのは何でしょうか?
>>33 キーワードは出揃ってるのに、何故ググらないの?
>>34 了解です。あとは自分で調べます。
ありがとうございました。
36 :
12 :2006/12/01(金) 08:15:38
37 :
名無しさん@そうだ選挙にいこう :2006/12/01(金) 09:47:28
値引の記号▲←をつかうと数値に桁区切りの点がはいりません。 記号をつかうと入れれないものなのでしょうか? OSはXPでエクセル03です。
ユーザー定義
39 :
名無しさん@そうだ選挙にいこう :2006/12/01(金) 15:04:52
アイコンをツールバーから単体で独立させて、画面の使いやすい場所に ポッと置いておける機能があったと古い記憶があるのだけど、 触れど触れど見つからない。そんな機能最初からなくて 思い過ごしをしているのでしょうか?
ツールバー、メニューバーの先頭の「|」あたりで 十字矢印カーソルになったらドラッグ
ああ、アイコン単独で1コだけって事ね、、それは _。 ただアイコン1コだけのユーザー設定ツールバーなら置ける。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 色の指定、IF関数 IF関数を用いて1以上であれば背景色・文字色を青などに指定することは出来ますか? かなり初歩的な質問のような気がするのですが、宜しくお願いします。
>>42 IF関数に限らず、関数や数式では不可能です。
>>5 > ★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)
> ▼数式・関数
> ・ 表示形式以外の書式の取得設定、書式情報を条件とする数式 (ユーザー定義関数)
条件付き書式で設定しましょう。
>43 ご助言ありがとうございます。 ユーザー定義で [<1];[赤] と入れて赤字で表示することはできるようになりました。 ただ・・小数点以下が5桁ほど表示されるようになってしまいました。 ユーザー定義を確認したところ [<1]G/標準;[赤]G/標準 というものに置き換わってしまってました。 小数点以下を2桁で抑える方法があれば、何度も申し訳ないのですが、今一度ヒントを頂ければと思います。 ツールバーから小数点繰上げをしてみましたがだめでした。
G/標準 → 0.00
46 :
44 :2006/12/01(金) 16:53:01
自己解決しました。 ユーザー定義ではなく、条件付書式で出来ました。
>45 リロードが遅れました。今試したところ、断然>45さんの方が使いやすかったので こちらでいきたいと思います。 ありがとうございました。
48 :
名無しさん@そうだ選挙にいこう :2006/12/01(金) 16:55:02
>>41 ありがと!それだ。
ユーザー設定、新規作成で塗りつぶし選択!
これで仕事がはかどる。もやもやも解消した。ありがと!
関数を扱おうと色々やってるます。 "0ABCDEF0"の様な値の場合、頭の"0"が消えてしまい"ABCDEF0"と成ってしまい困っています。 これを上手く表示させる事は出来ないでしょうか?
文字列として表示する。
51 :
名無しさん@そうだ選挙にいこう :2006/12/01(金) 21:22:27
Excel2003を触らないといけない状況になりまして。 通常、Excel97使ってたら、数式バーの左に「=」のボタンがあるんだけど、 2003の場合、ここに「fx」っつって、関数ボタンがある訳ですよ。 これを「=」ボタンに変更する方法をご存じの方おられませんか?
52 :
51 :2006/12/01(金) 21:56:27
=ボタン便利だったのになんでなくなったんだろね。
55 :
名無しさん@そうだ選挙にいこう :2006/12/02(土) 09:34:49
win xp office2003 です。よろしくお願いします。 したいこと:建物の築年数を表示させたい(築3年、築12年など)。 現状:TODAY() から 表示形式が yyyy"年"m"月" としてある 築年月のセルを引いて、表示形式を "築"yy"年" としています。 この場合、築03年という表示になりますが、0を抜いて築3年 という表示にしたい。 どうすればよろしいでしょうか?どなたか教えてください。
すいません、 1日を時間で区切った予定表 みたいな感じで円グラフを作りたいんですが、 数値をどうしたらいいのかよくわからず、 うまく円グラフが作れません…。 何かいい方法はありますかね? WindowsXP Excel2003です。
時間を%に変えれば良い
>>58 ありがとうございます。
なんとか4%くぎりでそれらしい物ができたんですが、
時間をまたぐスケジュールの場合、どうしたらいいんでしょうか…?
60 :
57 :2006/12/02(土) 10:47:36
61 :
57 :2006/12/02(土) 10:54:48
ちょっとわかりにくいんですが、 1時、2時、3時というように時間は1時間ごとに表示し、 スケジュール内容はまたぎたいということです。
等間隔に作ったグラフを系列2とする
第一系列に1を24個で作ったドーナツを付ける
64 :
55 :2006/12/02(土) 13:21:16
>>56 すばやい回答ありがとうございます。
yの数を工夫…、
"築"y"年"と減らしてみてもOKをクリックするともとのyyに
戻ってしまいますね…。
"築"yyy"年"と増やしてみると、変な結果になってしまいます。
はて?どうすればいいのでしょうか??
65 :
名無しさん@そうだ選挙にいこう :2006/12/02(土) 13:39:43
【1 OSの種類 .】 WindowsXP SP2 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 出勤表 関数 条件 文字 風俗店の出勤簿を作成したいのですが、例えばA1に出勤者の名前を入力するとB1にその人の 源氏名が自動的に出る様にするにはどうしたらよろしいでしょうか?ご教授願います。
66 :
名無しさん@そうだ選挙にいこう :2006/12/02(土) 14:09:12
【1 OSの種類 .】 WindowsXP Home 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 VBA(値 重複 フィルタ 検索) 例えば商品カテゴリのようにレイヤーになっているデータを Sheetsに1行ずつ記述すると、上位レイヤーの同じデータが複数並びますよね。 これをComboboxにAddItmで1行ずつ追加する時に、重複データを無視したいのですが どう記述すれば良いでしょうか お願いします
>>65 B1に
=if(a1="氏名","源氏")
で いいんじゃまいか?
68 :
66 :2006/12/02(土) 14:24:06
>>66 に追記ですが、各上位レイヤーのカテゴリ初期位置は
変動するので行数を指定して追加することはできません
出来ればFor〜NextやDo〜Loopに条件式を組み合わせる形で
追加したいです
69 :
65 :2006/12/02(土) 14:32:13
70 :
12 :2006/12/02(土) 15:19:59
セルの値が#DIV/!0かどうかをIF文等で判断したいのですが 条件式をどう書けば良いのでしょうか。
71 :
65 :2006/12/02(土) 15:34:14
最初の質問の際説明不足がありましたので再度質問です。 出勤者は毎日異なる訳で同一人物がいつもA列の同じセルに入力されるとは限りません (日によってA1に入力する日もあればA6に入力の日もある)。 よって、A列のどのセルに氏名を入力しても右隣(B列)にその人の源氏名が出る様にしたいのです。 又、その条件を30人程の在籍者に適用したいのです。 宜しくお願いします。
72 :
名無しさん@そうだ選挙にいこう :2006/12/02(土) 15:59:29
>>71 説明するよりヘルプの方が分りやすいだろうから
VLOOKUPやHLOOKUPを調べてみよう
73 :
65 :2006/12/02(土) 16:01:50
>>55 例1)
="築"&YEAR(築年月−TODAY())&"年"
例2)
="築"&YEARFRAC(開始,終了,計算形式)&"年"
>>70 =12
=UF(ERROR.TYPE(参照セル)=2,・・・・・
75 :
名無しさん@そうだ選挙にいこう :2006/12/02(土) 17:10:07
一番外枠のセルの名前なんていうんですか? 検索できないので質問させてください。 それの横も「数字」の表示になっているんですが、 これを変更するにはどうしたらいいですか? 普通に掛け算をしようと思ったんですが、 セルの計算式が RC とかになっているんです。
>>75 ツール/オプション[全般]の「R1C1参照形式〜」のチェックをはずす
>>75 メニュー > ツール > オプション > 全般 > R1C1 参照方式を使用する
のチェックを外せ。
78 :
55 :2006/12/02(土) 17:31:55
>>74 例1の="築"&YEAR(築年月−TODAY())&"年" を参考に、
="築"&(YEAR(TODAY())-YEAR(築年月))&"年" で、出来ました。
ありがとうございました。
79 :
名無しさん@そうだ選挙にいこう :2006/12/02(土) 18:22:27
複数セルを選択してもコピーできません。 どうすればできますか?
80 :
名無しさん@そうだ選挙にいこう :2006/12/02(土) 18:38:24
今はどうやってコピーしようとしてるのさ? 普通なら[ctrl]+[c]でいけそうなもんだけど。
連続する矩形領域以外を選択してコピーしようとしてるなら無理だと思う。 要は、「飛び飛びのセルをCtrl押しながら選択して、コピーしたい」てのが無茶だ、って事。
83 :
70 :2006/12/02(土) 19:31:27
>>84 もちっと他人にも分かるように例(図など)を書いてみたら?
商品カテゴリとか言われても、わからん。
>>84 AddItemするときに、
追加済みのリストの中にすでにデータがあるかどうかをループ回して判定して、
なかったときだけAddItemするようにコード書き直せばいいだけじゃん
87 :
名無しさん@そうだ選挙にいこう :2006/12/02(土) 22:16:48
>>85 すみません・・・
>>86 ありがとうございます
言われてみればそうですがAddItemに追加済みを参照するって発想が
出てきませんでした・・・助かります
追加済みを参照するときってComboboxのListプロパティを使うんでしょうか?
度々すみません
>>87 それでもいいし、配列で処理しておいて、後でまとめて追加してもいいし。
やり方は自由。
>>87 なんでやってみないで連続で質問?
ちなみに、相当巨大なリストであれば、
画面更新抑止しておいて、そのリストを元に、新規シートに出力版の
ピボット組んでユニークにする。で、そのピボットテーブルから
ダーっとAddItem、終わったらピボットのあるシートを削除。
→画面更新抑止解除。
というので、ストレス無いレベルの早さで出来上がるよ。
>>88 ありがとうございます
>>89 すみません、どういう方法が良いか見当がつかないもので・・・
リストは1万行ぐらいになる予定です
3列に同じ処理しないといけないので非力なマシンだと比較するだけで
大変なことになりそうで・・・
ピボットテーブルは使ったことがないので参考書買って読んでみます
Excelの機能分かってない奴がVBAって時点で無理w
92 :
名無しさん@そうだ選挙にいこう :2006/12/03(日) 01:48:29
【1 OSの種類 .】 MacOS 10.4 【2 Excelのバージョン 】 Excel2004 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 Excel 折れ線グラフ 線の太さ たくさん線がある折れ線グラフの線の太さを一括して変換したいのですが, 一つずつ変更していく方法しかないのでしょうか。
>>92 たくさんの線・・・っていくつあるんだよ?
かえって見にくくねー?
94 :
名無しさん@そうだ選挙にいこう :2006/12/03(日) 08:47:17
XP、Excel2002のVBAについての質問です。 シートAのprivate Subの中の下記のコーデイングの最後の文が 「実行時エラー1004 RangeクラスのSelectメソッドが失敗しました」 になります。 普通のSubの中の同様のコーディングではエラーにならないのですが 何が問題なのでしょうか。 Sheets("A").Select code=Cells(2,1).Value Sheets("B").Select Rows(code).Select
>>94 「シートA」のコードを実行している場合、シートを明示して
いない部分は、全て「シートA」の処理となる。
つまり、「Rows(code).Select」の部分は、
(シートAの)Rows(code).Selectを実行しようとして
エラーが出ている訳。
「Sheets("B").Rows(code).Select」としる。
96 :
94 :2006/12/03(日) 15:29:15
Excel2003について質問です、 マクロを作成しているのですが、SQLで条件を絞ってCSVからExcel上に出力させたいのですが 何か良い方法は無いでしょうか。
すみません、続きです。 最初は、CSVを全部表示させて置き換えでやろうとしたのですが、70000件程ありますので Excel上には出力しきれないのでSQLを使おうと思いました。 【1 OSの種類 .】 WindowsXP SP2 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 VBA CSV SQL
99 :
名無しさん@そうだ選挙にいこう :2006/12/03(日) 17:44:02
Excel2007を利用 行数は、104万行まで処理可能
100 :
名無しさん@そうだ選挙にいこう :2006/12/03(日) 18:12:00
○○以降のセル全てとかいう指定はどうしたらいいですか たとえばSUM(Aの行のA1以降の全てのセル)
>>98 ADOでやってるとして。
レコードを一旦ユーザー定義体に格納、その後60000件単位に分けて出力とか。
俺はそういう風にしている(もっとも自分の趣味のやつなんで、そんなにデータがある
訳じゃないが)。
103 :
名無しさん@そうだ選挙にいこう :2006/12/03(日) 21:36:28
adoでやってるならrecordsetのページの単位をexcelの行数に合わせてページごとにシートに転記すればいいんだぜ?
104 :
名無しさん@そうだ選挙にいこう :2006/12/03(日) 21:47:33
エクセルの表で、ある列からデータを重複なしで抽出し件数をカウントしたいです。 手軽にカウントできる方法を教えてください! どうぞよろしくお願いいたします。 【1 OSの種類 .】 WindowsXP SP2 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 いいえ 【5 検索キーワード 】 重複 抽出 カウント
105 :
名無しさん@そうだ選挙にいこう :2006/12/03(日) 22:09:42
1-2-3>>三郎>>>>>>エクセル
根拠のない煽りは、煽りの価値を持たない。
>>106 >>>>>越えられない壁>>>>>
>>105 とか書かれたって、「何言ってんだこいつ」くらいにしか思わないだろw
君の書いたのも、その程度のもの。
DSUM関数とSUMIF関数の用途の違いを教えていただけませんか。 個人的にどちらかがあれば、どちらかが不用だと思ったりもしています。 まだ未熟者なので出来るだけ簡潔に解説してもらえると有り難く思います。 宜しくお願いします。
>>108 DSUMは条件を複数指定できる。
orとandを組み合わせたような複雑な条件指定も可能。
ただし、DBがルール通りに正しく作られていないと使えないし、
クライテリアの為に作業セルを設けないといけない。
複雑な条件を指定するんじゃなければSUMIFで十分って事もある。
用途によって使い分けるものなので両方覚えとき。
複数条件でもSUMIF足せば良いと思うので、SUMIFで良いんじゃないの。 あんまり条件増えるとアレだが、条件増えたものを足すという状況になる 時点で、表の作り方間違ってると思われ。
111 :
名無しさん@そうだ選挙にいこう :2006/12/03(日) 23:37:51
左右に並べて表示にしてもうんともすんとも言わないんだけど、 どうしたらできるようになりますか?
配列数式とSUMだけではだめなのか?
>>111 2つブックを開いていないからじゃないの。
114 :
108 :2006/12/04(月) 00:11:16
皆さん有難うございます。 要は、その場その場によってどちらかが便利にも不適切にもなるんですね。 作業の便宜を図る為に両方あり、複数条件や作業用セルが設けられていればDSUM 表が無かったり単純な条件であればSUMIFの方で十分だということですね。
115 :
名無しさん@そうだ選挙にいこう :2006/12/04(月) 00:32:33
○○以降のセル全てとかいう指定はどうしたらいいですか たとえばSUM(6の行のj6以降の全てのセル)
116 :
悩んでます :2006/12/04(月) 00:47:41
こんばんは
118 :
66 :2006/12/04(月) 00:49:40
>>88-89 でけました
結果的にListもオートフィルタも使いませんでしたが重複しないで行数も保持できました。
いろいろヒントいただき感謝感激です
お世話になりました
お礼age
119 :
悩んでます :2006/12/04(月) 00:52:49
もしお時間があったら教えてください。 「あ」の隣のセルに、「あ」の内容「あいうえお」を自動入力したい 場合、どんな数式を入れたら良いですか? 因みに、「か」とある場合は「か」の内容「かきくけこ」を検知して 欲しいのですが、 別表に 「あ」「あいうえお」 「か」「かきくけこ」 「:」「 : 」を用意したのですが、 どう拾えば良いかわかりません。 もしご存知の方がいらっしゃいましたら、 教えていただけますか?
120 :
悩んでます :2006/12/04(月) 00:54:17
お話中でした。 失礼しました。。。
123 :
悩んでます :2006/12/04(月) 00:58:34
やってみます! 関数は良く分かりませんが、アドバイス頂いてどうもありがとうございました。
124 :
悩んでます :2006/12/04(月) 01:13:06
で、で、出来ました〜!!!嬉しい♪ 感謝感謝です!!! 初めての2チャンネルでした。 どうも有り難うございました!m(_ _)m
125 :
名無しさん@そうだ選挙にいこう :2006/12/04(月) 02:35:40
【1 OSの種類 .】 WindowsXP 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 セル 入力 日付 リスト 選択 現在は、何度も繰り返して入力する必要のある項目を、リストから選んで入力しています。 そこに、その時の日付も同じセルへ同時に自動的に入力するにはどうすればいいでしょうか? 「 ○○商事 20061204 」 ←“○○商事”という項目を選択するとこういう風に入力される感じで。
>>125 Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "A1" Then
Application.EnableEvents = False
Target.Value = Target.Value & vbLf & Format(Date, "yyyymmdd")
Application.EnableEvents = True
End If
End Sub
127 :
名無しさん@そうだ選挙にいこう :2006/12/04(月) 03:36:05
sheets1に配置したコマンドボタンをクリックすると sheets2に記述したマクロを実行する為にはどうすればいいですか?
128 :
127 :2006/12/04(月) 03:39:47
わかりました・・・ アホな質問して申し訳ありません・・・
129 :
名無しさん@そうだ選挙にいこう :2006/12/04(月) 09:19:15
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 近似曲線 最前面 最背面 グラフについて質問です。 近似曲線がプロットの上に重なって表示されてしまうのですが、 プロットを最前面にもってきて近似曲線の上に重なるようにするにはどうすればよいのでしょうか?
131 :
名無しさん@そうだ選挙にいこう :2006/12/04(月) 13:03:09
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 チェックボックス 削除方法 EXCEL webページから表(図形じゃないです)をコピーして エクセルシートへペーストするとwebページの表くっついてた 選択用チェックボックス(丸いやつ)もいっしょにペーストされるんですよ。 このチェックボックスがどうしても削除できないのですが、 どうやって削除するのでしょうか。 自分で作ったチェックボックスは右クリックDeleteで削除できるのですが これは何をやっても残ります、右クリックで選択すらできません。 行や列ごと削除しても最上段には残ります。
>>131 コントロールツールボックスをデザインモードにして選択
133 :
131 :2006/12/04(月) 14:01:37
>>132 できました、ありがとうございましたm(_ _)m
ついでなのですが、これらを大量に削除するVBAコードを作りたいのですが、
マクロを使うと
ActiveSheet.Shapes("Control 番号").Select
Selection.Delete
こんな感じになります。
これだと削除をしても番号がどんどん大きくなっていうので、VBAで繰り返すコードが作れません。
アクティブシート内のすべてのコントロールを選択するようにはできないのでしょうか。
134 :
131 :2006/12/04(月) 14:12:16
自己解決いたしました、ご迷惑をおかけしましたm(_ _)m
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 Excel ショートカットキー くだらない質問をひとつ。 操作を一つ前の状態に戻す時はCtrl+Zですが、 その逆(戻しすぎちゃったのを元に戻す)のショートカットって無いでしょうか。
137 :
135 :2006/12/04(月) 16:33:03
138 :
名無しさん@そうだ選挙にいこう :2006/12/04(月) 16:36:30
【1 OSの種類 .】 MAC OSX 10.4.7 【2 Excelのバージョン 】 Excel2004 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 行番号 行番号に*の様な印が表示され、シート上に二重線があります。 これは、どの様な状態なのでしょうか? また、解除方法を教えて下さい。 宜しくお願い致します。
140 :
名無しさん@そうだ選挙にいこう :2006/12/04(月) 18:22:55
どなたかご教授ください(^^ゞ 現在作製を上司から依頼されているのが、 1.問題が10問程度 2.各設問ごとに3つ程度の選択肢から一つを選択 3.上記問題の選択肢にそれぞれ0,1,2の点数を設定 4.最終的に問題が全て終了した時に設問毎の点数の合計を計算というソフト? です。 どのように作製したらよいのか皆目検討も...トホホ! 問題1で(A)という回答を選んだときに”2点”というふうにしたい場合、 Excelではどのようにすればよいのか是非教えてください (テンプレなら尚嬉しいです) 突然のお願いで申し訳ありませんがよろしくお願いいたします。
141 :
名無しさん@そうだ選挙にいこう :2006/12/04(月) 18:32:33
>>140 一例として。
1.問題と回答と点数の表を作る
A B C D E F G H
1 問題文 回答1 点数 回答2 点数 回答3 点数
2
・
・
・
2.フォームのテキストラベルに問題文を表示させ、
下のリストボックスかコンボボックスに
回答の入力されたセルの値をadditemで追加する
3.選択されたリストのlistindexから該当する回答の点数を
変数Ans(10)などを作っておいて代入する
4.A列を(1,0)でoffsetして行って空白になったら
全部のAns()を加算してmsgboxに出力するかEndで最終行を
取得しておけば問題増やしても対応可能
すいません。エクセル初心者です。 セルの塗りつぶしは、ユーザー設定で他の色に変更出来ないのですか? よろしくお願いします。
普通に出来るだろ
う〜。 それがユーザー設定の項目がないんですよ。 どうやってだすんですかね??
表示>ツールバー>ユーザー設定
146さん あの〜どこにチェックいれればいいんですかね??
148 :
名無しさん@そうだ選挙にいこう :2006/12/04(月) 20:58:17
【1 OSの種類 .】 WindowsXPhome 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 グラフ 範囲を指定して プロット A1:計算式 B1〜3:数値 こんな感じになっててA1の計算式はBの数値を使って計算するんですが 数値に範囲を指定してその範囲で計算しグラフを作ることはできませんか?
C列に計算結果を入れてグラフに読み込ませればいいのでは? つうかVBA使えないのにVBA可とは・・・
>>149 ありがとうやっぱりぼちぼちやっていくしかないんですね。
JavaScript ぐらいなら何とかなるんで少しぐらいはいいだろうと。。。
JavaScript使えるならVBAのテキスト一冊買って/読みしろよ ここで聞くよりそっちのほうが早いよ・・・
152 :
143 :2006/12/04(月) 21:30:13
あの〜ペンキのところクリックしたら ユーザー設定で色変えれるもん なんですか?? 塗りつぶしなしか その下にある40の色しかでてこない んですけど・・・
153 :
143 :2006/12/04(月) 21:33:24
ワードアートの時なら その他の色→ユーザー設定で色を変更できるんですけど orz
154 :
135 :2006/12/04(月) 21:33:31
155 :
75 :2006/12/04(月) 21:35:15
156 :
143 :2006/12/04(月) 21:47:14
>>154 できましたが、これって一回一回登録しないとだめなんですかね??
ペンキの画面でユーザ設定をだす事はできないんでしょうか??
>>156 出来ないよ。Excelは計算ソフトだからね。
多彩な表現に充分な色数を用意するより
分類などの識別に充分な色数と動作の高速化を取っている。
158 :
名無しさん@そうだ選挙にいこう :2006/12/04(月) 22:27:30
パレット作ってテンプレートにすればいいだけじゃんwwwwwwwwww 「出来ないよ」だってwwwwwwww かっけええええええええええええええええええええwwwwwwwwwwww
解ってない奴発見。嘲笑するつもりが嘲笑される立場にw
この板ID無いから何が何なのか
エクセルでは使える色に制限はないけど 使える色数に制限があるってこと知らないんじゃないの?
Excelでは色をインデックス管理している。 VBAなんかでRGB指定した場合なんかは、指定色ではなく登録色のなかで一番近い色になる。 セルにはRGBの30万分の1程度のパターンしかないインデックス情報しか置かないことで 高速化を行っている。登録の変更を簡素化したり一発で切り替えたりは可能だが Wordのように未登録の色をいきなりパレットから呼び出すのは無理。
163 :
143 :2006/12/04(月) 23:06:54
みなさん ありがとうございました。 無理ですか。頑張って色々やってみます。
164 :
名無しさん@そうだ選挙にいこう :2006/12/04(月) 23:17:51
1 2 3 4 と並んでるのを、 1 2 3 4 と一発でできないでしょうか?
166 :
名無しさん@そうだ選挙にいこう :2006/12/04(月) 23:21:46
167 :
名無しさん@そうだ選挙にいこう :2006/12/04(月) 23:21:58
158かっけええええええええええええええええええええwwwwwwwwwwww
>166 形式を選択して貼りつけのなかにある 意味がわからないなら調べて
>>168 GJ!!!
解決しました。ありがとうございます!
170 :
125 :2006/12/04(月) 23:37:27
>>126 ありがとうございます。
ただ
>>126 のプログラムだと、特定の1つのセルのみしか効果がありません。
例えば、8〜12列目と15〜17列目のすべてのセルに同様の効果を、持たせることは出来ないのでしょうか?
For〜Next使えばできるよ
172 :
140 :2006/12/04(月) 23:56:00
>>142 さん
早速のご教授、アリガト!(´▽`)
これからチャレンジしてみます。
何か他にお気づきの点などありましたらよろしくお願いいたします。
>>171 ありがとうございます。
ForとNextをどこへ挿入すれば良いのですか?
俺のk.....
_,r'´::::::::::::::::::::::::::`'、. / 入 遠 ほ {::::::::rr-‐-‐'^i::::::::::::::i. ! れ 慮 ら ゙l'´゙《 __,,,ゝ:::r、:::::l | て し ト=r;、 ゙"rィァ‐リメ }:::::} ヽ み .な ゙i`"l  ̄ ソ::::ヽ l′ ろ い ゙i. ゝ^ , /ヾヾヾ、 ヽ, よ で ヽ ゙こ´ / ヽ、 ∠_ ヽ、 /__,∠、 `'-、 ^ー―― `゙ク'゙´ ` ゙'、 ヽ / 〉 ヽヽ ィ ヽヽ _,,-'´::: ゙i / ` } / ,-ィ‐r'´´ / l __r'〈 ,ノ / ```l / l -‐ ´ ‐ '' ´ /l::: l ー'´ l
177 :
170 :2006/12/05(火) 02:55:54
8〜12列目はできたのですが、15〜17列目が出来ません。 どうすればいいでしょうか? Private Sub Worksheet_Change(ByVal Target As Range) Dim theCell As Range Set Target = Intersect(Target, Range(Cells(8, 1), Cells(12, 198))) If Not Target Is Nothing Then Application.EnableEvents = False For Each theCell In Target Target.Value = Target.Value & vbLf & Format(Date, "yyyymmdd") Next Application.EnableEvents = True End If End Sub
178 :
名無しさん@そうだ選挙にいこう :2006/12/05(火) 13:28:00
>>176 >他力本願
これは仏教用語、ちゃんと理解して使ってね
180 :
名無しさん@そうだ選挙にいこう :2006/12/05(火) 14:03:30
>>179 そんな方法で悔しさを紛らわすなんて、感心しないぞ
おまいら余所でやれw
(
>>179 もどう見ても偽物だろw)
182 :
名無しさん@そうだ選挙にいこう :2006/12/05(火) 14:39:56
↑ 語尾の「w」は必要ないからね、気を付けよう!!
>>177 Private Sub Worksheet_Change(ByVal Target As Range)
Dim theCell As Range
Set Target = Intersect(Target, Application.Union(Range(Cells(8, 1), Cells(12, 198)), Range(Cells(15, 1), Cells(17, 198))))
If Not Target Is Nothing Then
Application.EnableEvents = False
For Each theCell In Target
theCell.Value = theCell.Value & vbLf & Format(Date, "yyyymmdd")
Next
Application.EnableEvents = True
End If
End Sub
For Eachの構文は間違ってないけど、中でTarget使っちゃったら意味無い。
それと、
>>176 やその他に言っておく。
ここは他力本願、丸投げ上等のスレ。(
>>1 の※読め)
その代わりに質問者側が守るべき決まり事もいろいろある。
丸投げする奴が嫌いなら、答えないのは自由だし
ルール守ってない奴に文句付けるのは構わないが
ルール守ってるけど、自分的には気に入らないってだけで
丸投げが許されてるスレにおいて丸投げを叩くのは許されないよ。
125=170に文句付けるとしたら、Excelのバージョン書けってくらいかな。
とりあえず今回の質問には関係ないけど、一応必ず書くことになってるんで。
>>183 てか、
>>1 を読むと分かるんだが、
まだここも注意書きの範囲なんだから堅いこと言っちゃダメ
ィィョ ィィョ
186 :
名無しさん@そうだ選挙にいこう :2006/12/05(火) 20:40:49
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 思いつく限りの単語で検索しました 文字列の最初の文字と最後の文字を消す関数はないでしょうか? VBA関数にmid( )というのがあるので先頭の文字を削る事はできるんですが 最後の文字ができません。 VBA関数でもワークシート関数でも、そもそも関数を使わなくてVBAでもいいので、 できる方法を教えてください。
>>186 midのヘルプをみてその関連項目をみよ
189 :
名無しさん@そうだ選挙にいこう :2006/12/05(火) 21:26:43
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 COUNIF 書式 これ↓をエクセルのマクロで書きたいですが 私の技量では無理なのです。 どなたかずばり書いてやってくださいませんでしょうか。 ---------------------------------- A列をA1から順にデータをチェックし、 以前に出てきていない数であれば、ctr+=1 列の最後まで終わると、 何種類のデータがあるか(お互いに重複しないデータがいくつあるか) がわかる。 ---------------------------------- COUNTIFで検索しまくりましたが、結局わからずじまいでした。 どなたか、なにとぞよろしくお願いいたします!
>>189 COUNTIFで良い。
1が返ってくるのを数える。2以上が返ってくるのは重複してるので数えない
それをA1からA?の最後までループさせる。挑戦してみそ
>>186 LeftとRightで消せばいいじゃないか
>>189 A列の最終行を1000だとして、
1)A列でソート。
2)B1に「=COUNTIF(A1:A1000,A1)」と入力。
3)B1の数式をB1000までコピー(フィル)。
4)B列の値が「1」のもので絞れば、合計がユニーク数。
>>186 =MID(文字列,2,LEN(文字列)-2)
194 :
名無しさん@そうだ選挙にいこう :2006/12/05(火) 22:06:12
すいません、日付のシリアル値とかがよく理解できないんですが。 年月日をすばやく入力できて、二つの年月日の差を計算したりする事ができるようにするには、リストにどのように入力すればいいんでしょうか?
>>195 すいません、普通に日付だけ「061205」とか入力すると、数字として扱われて「61205」と表現されるんですが、コレを解決するにはどうすればいいのでしょうか?また、二つの日付の差なども計算して欲しいのでシリアル値に変換できるような形であればいいのですが。
06/12/05って入れればいいさ
できました。ありがとうございます。
199 :
名無しさん@そうだ選挙にいこう :2006/12/05(火) 23:17:29
Excel2002を使っております。 Tabスペースを入れたいのですが どのようにして入れれば良いのでしょうか?
201 :
186 :2006/12/06(水) 02:29:05
202 :
名無しさん@そうだ選挙にいこう :2006/12/06(水) 03:59:00
【1 OSの種類 】 Windows2000 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか 】 いいえ 【4 VBAでの回答の可否】 否 他のブックのセル参照を参照したいんですが =[book1.xls]Sheet1!$A$1 とするところを[book1.xls]部分のブック名を 他のセルから引用することは可能でしょうか? そのセルに入力するブック名を変更することによって 参照値を変えたいと思っています わかる方教えてください。
>>186 VBAでやる必要あるのか?
LEFT
MID
RIGHT
LEN
これらの関数を組み合わせてつかえよ
>>202 =INDIRECT(B1)
B1には [Book1.xls]Sheet1!$A$1
>>202 そのブック名を入れるセルがA1なら
=INDIRECT("["&A1&".xls]Sheet1!$A$1")
>189 VBAでの回答 否で どうやって、ずばりマクロを書けと、、、
207 :
名無しさん@そうだ選挙にいこう :2006/12/06(水) 11:37:22
そんな事ぐらい察してやれよ
【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 Excel シート 合成 合体 結合 すいません質問です。 シートが1、2、3、4・・・12とあり、その中のデータをひとつのシートにまとめています。 その際作業方法としては シート2を表示 ↓ 選択してコピー ↓ シート1を表示 ↓ ペースト ↓ シート3を表示 ↓ 選択してコピー ↓ シート1を表示 ↓ さっきコピーした次の行から追加ペースト (以下延々とシート12までコピペ) こんな感じで手動で行っているんですが・・・何か一気にひとつのシートにまとめるような機能ってないですかね? メニューの中に「統合」っていうのがあるけど、全然違う感じだし・・・。
>>208 行数が毎回同じなら、参照で可能かもだが、そうでないなら、
VBAでないと無理。
>>209 行数は毎回違うんですよね・・・。
やっぱりだめでしたか。VBA・・・あたしたちパートには手が余るみたいなので雇い主にちょっと相談してみます。ありがとうございました。
↓この後、質問者が女と見て誰かがコードを書くも、 それをどう使って良いか分からないオバサンがオロオロするというシーン。
残念、はずれ
213 :
210 :2006/12/06(水) 17:55:01
23歳でオバサンて言われた・゚・(ノД`)・゚・
考えることも出来ないなら 質問してくんな!男のオバサン
>>210 パートならそれ専門に雇われたかどうかで変わってくるだろう
雑務として雇われたなら、
「ボス、めっちゃ時間掛かるけどいいっすか?」
と、断わりを入れておくのを忘れずに!!
あと、VBAでやるにしても、選択するところの共通部分が分からなければ絶対に無理
さすがに雑談など含めて対応が優しいなw 殺伐とした良い雰囲気が無くなるので、性別出すの無しにしてくれ
excel2000sp3です。 グラフ作成時の凡例に下付の文字を使うことはできないのでしょうか。 グラフタイトルとかには使えるのですが・・・
>>217 普通に凡例の書式設定→フォントタブから出来たけど?
それだと選択した凡例すべてが下付になってしまいます。 たとえばRxとかこんな感じにしたいのです。
220 :
名無しさん@そうだ選挙にいこう :2006/12/06(水) 22:36:33
VBAで文字列の連結ですが&を使うのはわかるのですが 改行した瞬間に使えなくなります この場合どうしたらいいのでしょうか? Javaでいう String mojiretsu mojiretsu += 1 mojiretsu += 2 みたいな事は不可能なんでしょうか? ちなみにExcel2000です
221 :
名無しさん@そうだ選挙にいこう :2006/12/06(水) 22:50:45
すいませんもう一つ質問です セルのA1かBC1までを左から順番に読み込んで 一個一個配列に文字列を格納したいのですが 一つ一つRange("A1").select → コピー とやるのも数が数だけに なかなか厳しいものがあります for文を使おうとした場合も数字がプラス1ではなくA→B→Cの順番なんで 無理っぽいのですが、 セル番号のA→B→Cを1,2,3と認識して順番に読み込んでくれるようなことは可能でしょうか? またそれが出来ない場合、他にいい方法などありますでしょうか? ご教授をお願いします
>>220 Dim mojiretsu As String
mojiretsu = "1"
mojiretsu = mojiretsu & "2"
そのままVBに表すとこんな感じかな。
JavaではなくJScriptしか知らないから間違ってるかも知れないけど。
実際に改行を変数の中に入れるなら
Dim mojiretsu As String
mojiretsu = _
"1" & vbCrLf & _
"2" & vbCrLf & _
"3"
VB言語は基本的に1行1ステートメントで、
1ステートメントを複数行に渡って書く場合は「 _」で接続する。
Javaから見ると改行が ; を意味し、それの無効化が _だと思えばいいいのかな。
>>221 配列(インデックス) = Cells(行番号, 列番号).Value
値を拾うのにSelectする必要はない。Cells(1, 3)がC1を表す。
あと、Variant型の二次元配列で良ければ
配列() = Range(範囲).Value
の一発で、範囲の値を配列に取ることが出来る。
223 :
名無しさん@そうだ選挙にいこう :2006/12/06(水) 23:02:50
こんばんは。25時間をday関数とhour関数を使って時間に表すためにはどうゆう数式になりますか?
>>223 day関数、hour関数は、任意の日時を表現する関数ではなく、
任意の日時から、日や時に該当する数値を抜き出す関数だ。
2006/12/06(水) 23:02:50に対して、day関数なら6、hour関数なら23を返す。
任意の数値から日時(シリアル値)を返したいならDATE関数やTIME関数だよ。
例えばA1に日、A2に時を表す数値を入力して、これを元にシリアル値を返して時間表現するなら
式が「 =DATE(1900,1,A1)+TIME(A2,0,0) 」で表示形式が「 [h]"時間" 」だな。
単純に計算してもいいけど。=A1+A2/24
227 :
名無しさん@そうだ選挙にいこう :2006/12/06(水) 23:31:02
問題15 時間表を使い時間の合計を下のセルに表示しなさい 表示形式はユーザー定義を使い25:45のように表示しなさい。 時間表 時間 6:30 6:00 6:45 6:30 合計25:45 問題16 上記の問題で作成した合計セルを関数を使って 時と分で表示しなさい。時間分 時間はDAYとHOUR関数を使います。48:0045 分はMINUTE関数を使います。
228 :
名無しさん@そうだ選挙にいこう :2006/12/06(水) 23:37:19
これです。意味がわかりません。
>>227 何の問題よ、コレ。
問題16の意味がワカラナサスw
きっと24時間を越えてるから日も使えって事だな 31日を超えたらどうするのか謎だけど
231 :
名無しさん@そうだ選挙にいこう :2006/12/07(木) 00:01:13
>>129 ↑と同じ質問なんですがどなたか御教授いただけないでしょうか?
検索などで調べてみましたがなかなか見つかりません、どうかお願いします。
232 :
名無しさん@そうだ選挙にいこう :2006/12/07(木) 00:05:00
課題は自分で考えろ!あまえるな!
出た
たぶん =DAY(A5)*24+HOUR(A5) & "時" & MINUTE(A5) & "分" みたいな計算させたいんだと思う。でも元々時分で表示してるから意味ねーよなw シリアル値を時分で表示したいなら、=TEXT(A5,"[h]時m分")の方が楽かも
235 :
名無しさん@そうだ選挙にいこう :2006/12/07(木) 00:36:53
Columns("A:A").Selectで範囲を指定して 指定した特定の文字列を検索して、そのヒットした行(複数の可能性あり) のすべての値をファイルに書き出したいのですが どうすればいいのでしょうか? 値をファイルに書き出すのはともかく 検索してその行を取り出すっていうのがどうしても出来ません
>>235 とりあえず質問のテンプレつかえ。レスつきやすくなる
237 :
名無しさん@そうだ選挙にいこう :2006/12/07(木) 00:42:16
>>236 235です
【1 OSの種類 .】 Windows2000
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 文字列 検索 VBA(複数検索ってのがどうしてもわかりません)
>>237 Dim r As Range
For Each r In Selection
If 特定文字 = r.Value Then
ファイル出力
End If
Next r
てな感じかな?
>>235 &
>>237 そんな検索ルーチンいらないでしょ。
面倒なので、考え方だけ。
VBAで自動化して。必要な件数分ループね。
(1)オートフィルタ
(2)A列で絞る
(3)絞った状態で、シート全体を別シートに貼り付け
(4)貼り付けた方のシートをファイル出力
240 :
名無しさん@そうだ選挙にいこう :2006/12/07(木) 07:06:28
day,hour関数のレスありがとうございました。 助かりました(*^^)
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 検索 Sheet1 日付| @| ───── ──────── 名称|合計金額| ※名称はすでに入力済み ──────── ・ ・ ・ sheet2 日付| 名称 | 〜明細〜 | 合計金額 | ・ ・ ・ 以下日付順に名称の明細、合計金額が入力済み sheet1で@に入力した日付をsheet2で検索してその日付の名称別の合計金額をsheet1の合計金額部分に表示させるには どんな関数を使ったらいいでしょうか?
243 :
名無しさん@そうだ選挙にいこう :2006/12/07(木) 09:09:32
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 少々 【4 VBAでの回答の可否】 ?? この度会社で使っていたpcが動かなくなり再セットアップしたのですが、excelのツールが動かなくなってしまいました。そのマクロツールをインストールしようとするとユーザー登録されていませんと出て終了されます。 以前セットアップしたときにdos窓でnet userコマンドをみていたのでもしかしたらそこが原因なのかもしれません。上司には変えちゃったの?といわれそれ以降聞きづらくなってしまいました。どこかで修正きかないでしょうか?お解かりの方よろしくお願いします。
245 :
名無しさん@そうだ選挙にいこう :2006/12/07(木) 09:56:29
EXCEL2002です。 EXCELシートのIFの論理式で、and条件、or条件、 条件判定の優先順位指定は、どのように書けば良いのでしょうか。
【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 できれば否。VBAでしか出来ないのなら可。 【5 検索キーワード 】 「eccel 連続データ」 たとえば 1,=A1^2 2 3 4 とあってA2のセルの右下の黒い四角を下にドラッグしていくと 1,=A1^2 2,=A2^2 3,=A3^2 4,=A4^2 と連続データを作れますよね。 今回の場合たかだか5行だからちょっとの時間で出来るけれど 何万行もあったら下までドラッグするのも数十秒かかってしまいます。 これを「編集」→「フィル」→「連続データの作成」みたいな操作(…★)をして 一瞬で下まで作る方法ってないですか? あったら教えてください。 (注) ★について A1のセルに「1」というデータがあって 「編集」→「フィル」→「連続データの作成」で出てきたウィンドウの 範囲=列、種類=加算、増分値=1、停止値=10000とすると A列の1行目から10000行までに1,2,3、、、という連続データが出来ることを指しています。 今回の質問は、値ではなく関数でこの手法を使う方法についてです。
12行目書き間違えました。 誤:とあってA2のセルの右下の黒い四角を下にドラッグしていくと 正:とあってB1のセルの右下の黒い四角を下にドラッグしていくと
>245 シート上では論理演算子は関数化されていて 並列に記載できないから、優先順位というものはなく どのようにネストさせるかがカギ。 VBAだと同列だから、左から順に評価される。
>>244 外注のExcelマクロって事なら、Excel側の問題では無いので、
このスレでは分かりかねます。上司なり分かる人に確認しましょう。
頑張って!
>>245 Ifのネストは普通に前から順に実行されますが、
「優先順位指定」って、どういう事がしたいのですか?
>>244 >ユーザー登録されていませんと出て終了されます。
ユーザー登録すりゃいいだけだろうが
>>246 @B1だけ数式書く。
Aフィルが終了するセル「B10000」までジャンプ。
(例えば、Ctrl+G⇒参照先に「b10000」と書いてEnter)
BCtrl+Shift+↑で、B1:B10000を選択。
CCtrl+D
>>246 B1から終わりの行まで数式で埋めていいなら
B列を選択してCtrl+D
>>251 2と3は一緒にできる
参照先にB10000と入力してShiftキーを押しながらEnter
>>246 「B1:B10000」を選択して「=A1^2」と入れて「Ctrl+Enter」
たったこれだけ。選択はアドレスバーに「B1:B10000」と入れれば良いだけだし
あとは確定が「Ctrl+Enter」なだけで、普通に式を入れれば良い。
先に式を確定してしまうと、あとから範囲選択してフィルコピーしなきゃならないが
先に選択しておけば確定と同時にフィルコピー出来る。
それに251のABの部分は、わざわざ1セルにジャンプせず、入力を「B1:B10000」にして
範囲にジャンプすれば、Bの操作は不要となる。
みなさんがやってるのは、オートフィルじゃなくて、只のコピペ。 セル番地かつ増分1の場合しか利用できない。 >246がやりたいのは、★の部分だから、マクロでないと無理。
257 :
244 :2006/12/07(木) 11:37:28
>>250 そのユーザー登録はどこをみてはじいてるのか知りたいのです。
dllなどをみたらユーザ名があるような場所はあったのですがどう修正するのかさっぱりわかりません。
>>256 増分値1って書いてるからその通り案内しただけだが。
みたいな動作としか書いてないので、フィルじゃないとダメって指定ではないだろ。
>>257 ここで訊いても無理だと思うよ。嫌な思いするだけ。
早く上司にきいてスッキリしなさい。
>>257 クラッキングしたいならもっとアングラなところに行けよ
すいません、オートフィルタでフィルタ結果の貼り付け先を指定して張り付けると。セルの式ごと貼り付けられますよね? これを、表だけの数字だけ貼り付ける事って可能でしょうか? つまり、「コピー」と同じようにセル内容ごと反映させるのではなく、「移動」のようにセルに表示されている数字だけを貼り付けるという事です。
【1 OSの種類 .】 Mac OS X 【2 Excelのバージョン 】 Excel 2004 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 Excel|エクセル フィル 曜日 12/7 木曜日 12/11 月曜日 12/14 木曜日 12/18 月曜日 ・ ・ のように曜日を基準としたフィル入力は可能でしょうか。 (上記の例では月・木曜の連続データを作成したい) セル上の操作や「フィル」メニューからの作成では うまくいきませんでした。
>>261 いまいち何がしたいのかわからん・・
曜日を基準として日付をだしたいということでいいのか?
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 折れ線グラフ 強調 折れ線グラフで特定の要素にだけ降下線のようなマーキングしたいんですが どうすればいいんでしょうか
264 :
245 :2006/12/07(木) 14:29:40
265 :
名無しさん@そうだ選挙にいこう :2006/12/07(木) 14:35:22
EXCEL2002のVBAについての質問です。 自分のブックに”A”という名前のシートが存在するか どうかは、どのようにすれば分かるのでしょうか。 シートAがあれば、そのシートを使い、 無ければシートAを新規に作成して、使いたいのですが。
>261 5行分データ作成→選択→表示形式を数値に →オートフィル→表示形式を日付に戻す >265 ブック"A"をアクティブorセレクト。 エラーなら存在しないから作成する。
267 :
266 :2006/12/07(木) 15:06:12
>261 日にちがずれました。撤回します。
268 :
261 :2006/12/07(木) 16:44:28
>>262 特定の曜日にだけ測定するデータの一覧を作る
といった感じです。
(月・水・金に開かれる会合の参加人数、など)
週イチなら通常のフィルで大丈夫なのですが(あたりまえ)
週2回、3回の場合は間隔が一定でないため
曜日基準、もしくは複数の増減値を持てるフィル機能があれば良いのですが。
A1に12/7って入れて、A2に12/11って入れて A3に=A1+7って入れたらあとはA3をフィルコピー。 週3ならA3まで日付け入れて、A4に=A1+7って入れることになる。 曜日は日付を参照して出すようにしておけば問題ない。 週3なら3つ下に次週の同一曜日が来ればいいんだから 式では逆に3つ上を参照して1週間を表す7足せば良いだけっていう単純な話。 増減値は一定でいけるのに、上下の関係しか見てないからややこしくなる。 もっと視野を広く持とう。
270 :
266 :2006/12/07(木) 18:17:40
先程は失敗してごめんさいですが、あくまでも式を使わない方法に こだわりたいと思います。 A1に12/7、A3に12/14、B2に12/11、B4に12/18を入力 A1:B4選択、オートフィル、編集→ジャンプ→セル選択→空白セル→OK 削除→左方向にシフト、でわ?
271 :
名無しさん@そうだ選挙にいこう :2006/12/07(木) 18:29:54
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 セル EXCEL 桁数 限界 エクセルのセルで計算できる桁数って何か制限があるのでしょうか? 手入力で入れるぶんには100桁でも入るのに VBAでの計算結果をいれるとわずか10桁ぐらいでも「オーバーフローしてました」 というメッセージが出てプログラムが停止してしまいます。 これは何がおこってるんでしょうか? Sub a() Dim a1 As Long Dim a2 As Long a1 = 7650 a2 = 4282000 Cells(3, 4) = a1 * a2 End Sub こんな感じに計算しているのが止まります。 解決方法は無いでしょうか?
>何がおこってるんでしょうか? オーバーフロー
273 :
246 :2006/12/07(木) 18:49:36
274 :
名無しさん@そうだ選挙にいこう :2006/12/07(木) 19:38:18
>>271 Longじゃ足りないのでDoubleにしたら?
むしろVariantかと
276 :
名無しさん@そうだ選挙にいこう :2006/12/07(木) 19:48:31
Variantは無駄が多いんじゃないかと。 Option Explicit記述してないから Variantだったら変数宣言いらないな。
277 :
名無しさん@そうだ選挙にいこう :2006/12/07(木) 21:09:55
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 すこし 【4 VBAでの回答の可否】 できれば不可で 1 2 3 10/1 21 ○ 10/1 24 ○ 10/1 22 × 10/2 21 ○ 10/2 20 ○ 上のようなデータがあって 3行目が○のとき、かつ1行目が10/1の時の2行目の値の合計を求めたいのですが、作業セルを使わずにできる方法は無いでしょうか? sumifだと3行目しか条件付けれないので無理みたいですし・・ 配列数式でできるかなと思ってちょっと探してみたのですが、よく分からなくて数式が出せませんでした。
278 :
名無しさん@そうだ選挙にいこう :2006/12/07(木) 21:15:56
1 2 3 1月1日 9:00 53 1月1日 13:00 46 1月1日 16:00 56 1月2日 9:00 76 1月2日 13:00 63 1月2日 16:00 98 このようなデータで、1,2をX軸にして3をY軸にするグラフを作成したいんですけど、 上手く作れません。どのようにすればできますか?
>>277 =SUMPRODUCT((TEXT(A1:A5,"mm/dd")="10/01")*1,B1:B5,(C1:C5="○")*1)
>>278 1,2を合成した作業セルを作成
280 :
278 :2006/12/07(木) 21:28:05
>>279 ありがとうございます。
ただやってみましたがうまくいきません。
目盛設定変えたらグラフが消えてしまう・・・
>>260 フィルタかかったもののコピーって、「値で貼り付け」がデフォじゃなかったっけ?
ならないなら、形式を指定して貼り付け→値で。
282 :
277 :2006/12/07(木) 21:36:08
>>279 できました!
こんな関数があったんですね
ありがとおございました
283 :
名無しさん@そうだ選挙にいこう :2006/12/07(木) 21:56:54
Private Sub CommandButton1_Click() Dim ans As Integer Dim intA As Integer intA = 10 ans = plus10(intA) MsgBox ("1 = " & intA) MsgBox ("2 = " & ans) End Sub Function plus10(intA) intA = intA + 10 End Function こういう簡単なプログラムがあって これを流したら 「1 = 20、2 = 0」となりansの変数には何も入っていない状態になります またans = というコードを外した場合 「1 = 10、2 = 0」となりそもそも計算結果がリターンされなくなってしまいます これを両方とも20にするにはどうすればいいのでしょうか? どこが間違っているのか教えてください
285 :
284 :2006/12/07(木) 22:01:46
286 :
名無しさん@そうだ選挙にいこう :2006/12/07(木) 22:02:46
>>284 Function plus10(intA)
intA = intA + 10
End Function
plus10という関数で渡した値に10をプラスして返す
> 「1 = 20、2 = 0」となりansの変数には何も入っていない状態になります 当然じゃん。Function plus10は計算だけして結果を返さないように作ってあるんだから。 結果を返したければ Function plus10(intA) intA = intA + 10 plus10 = intA End Function > plus10という関数で渡した値に10をプラスして返す 「plus10という関数で渡した値に10をプラス」までは書いてあるけど 「返す」を何処に書いてるつもりなんだか。
>>287 なるほど所謂return値が必要ないと思ってたので
ありがとうございます
289 :
名無しさん@そうだ選挙にいこう :2006/12/07(木) 22:23:25
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 OK 【4 VBAでの回答の可否】 OK ちょいと疑問なんですが マクロの記録でsheet2を選択→E列を選択→オートフィルタにする→その中から「山田」を抜き出す これを実行すると下記の記述が出来ますが これをそのままVBAに記述すると、Columns("E:E").Selectで必ず落ちます マクロの記述をVBAで実行はできないのでしょうか? Sheets("sheet2").Select Columns("E:E").Select Selection.AutoFilter Selection.AutoFilter Field:=1, Criteria1:="山田"
>>289 Sheets("sheet2").Columns("E:E").Select
と明示しる。
291 :
名無しさん@そうだ選挙にいこう :2006/12/07(木) 22:34:44
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 不可 A B C D E F G H I J 1 (あ) ○ . あ ○ い 2 (う) ○ う ○ え 3 (か) ○ か B列〜Z列のどこかに○が複数あった場合 一番左(Bに近い)の○の2列右のデータをA列に 表示する方法をおしえてください。
294 :
名無しさん@そうだ選挙にいこう :2006/12/07(木) 22:50:35
>>292 実行時エラー '1004'
RangeクラスのSelectメソッドが失敗しました
このエラーがでます
>>289-290 ,294
"E:E"の指定するならRange使え。Columns使うなら
Sheets("sheet2").Columns(5).Select
ColumnsにRangeの引数指定方式を勝手に使うな。
>>293 =OFFSET(B1,0,MIN(IF(B1:Z1="○",COLUMN(B1:Z1),27)))
をCtrl+Shift+Enterで確定。
○が無かった場合は0が返るので、その場合の例外処理が必要なら自分でやってね。
>>289 >これをそのままVBAに記述すると、
これが何してるのか不明。
そのままModule1に記録したMacro1をメニューから実行してる訳ではないって事よな?
297 :
名無しさん@そうだ選挙にいこう :2006/12/07(木) 23:50:28
Sub Macro1()
Sheets("sheet2").Select
Columns("E:E").Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="山田"
End Sub
マクロにこれが出てくるので
Sub Macro1()の部分を
Private Sub CommandButton1_Click()にして、ボタン押下時に
同じように実行するようにしただけです
>>295 ちなみにそれでもうまく行きませんでした
>>297 デバッグって知ってる?
知らないなら調べてこい。VBAやる奴の最低限必要な知識の一つだ。
知ってるなら解決したも同然だから、もう構う必要はないし。
300 :
名無しさん@そうだ選挙にいこう :2006/12/08(金) 00:02:34
すいません。 10月28日の14時をシリアル値で表すにはどうすれば良いですか?
>>299 それが出来ないって言ってるようだけど。
Columns("E:E").Select
の部分を
Sheets("sheet2").Columns(5).Select
に書き換えろって言ってるんだから、その前の
Sheets("sheet2").Select
でちゃんとsheet2が選択されてるはず。
消せと言われてもいないのに、勝手に
Sheets("sheet2").Select
を消してるとかなら話は別だけど。
303 :
名無しさん@そうだ選挙にいこう :2006/12/08(金) 00:18:45
>>302 日付、時刻を別々に求めるのは理解できるんですけど、
いっぺんに変換するやりかたがわかりません
>>295 さん
ありがとうございました。
大変感謝しております。
これで問題が解決しました。
本当にありがとうございました。
自動的に日付を入力するマクロを・・・っと思ったけど既に
>>183 で出てた。
でもこのコードって、deleteキー無効じゃん。
deleteキー押したら消えるようなコード付で、どなたか改良してもらえませんか?
theCell.Value = theCell.Value & vbLf & Format(Date, "yyyymmdd") ↓ If theCell.Value <> "" Then theCell.Value = theCell.Value & vbLf & Format(Date, "yyyymmdd")
>>305 >>281 オートフィルタなんて関係ないってこと
普通に貼り付けるんじゃなくて
編集 → 形式を選択して貼り付け → 「値」を選ぶ
これで御望み通りの貼り付けができる
ただしオートフィルタの結果をコピーするとき、表示されていない列のセルまで拾うことがあるから、別の方法で表示されているセルだけを選択する必要あり
311 :
265 :2006/12/08(金) 07:56:14
312 :
261 :2006/12/08(金) 08:21:39
>>269 ありがとうございます。この方法でできました。
「下方向へコピー」はこういう動作をするんですね。
>>270 ありがとうございます。こちらの方法も面白いですね。
この手法は別の状況に応用できそうです。
エクセルでA1〜A20にランダムの数字があって、B1=A1、B2=A1+A2、B3=A1+A2+A3・・・ とB欄にAの合計を入れていきたいのだけどその数式はどうなりますか。
>>314 いや、それが延々に続く場合、手でいちいち数式うちこめないので。
というか自己解決しますた。SUM($A$1:A2)だった。B3以降は数式コピペで。
>>316 問題文からキーワードを拾って検索すれば答えは見つかるよ。
宿題は自分でやろうね。
>>316 ちょっwそんな依頼の仕方はないだろ。
どうしても分からない所だけ抜き出して質問しる。
てゆか、難しい所ないだろ、これ。
これはひどいw で、BB05229で特定した
>>317 >>318 すみません。一応は自分でも考えて見たんですが、、、
今分からないのは加重算術平均の求め方で、そこでつまずいてるんです。
調べてもわかりやすいページが見つからなくてここに書き込みました。
算術平均だけなら何とか理解できそうなんですが、加重算術平均は全然分からないんです。
orz
また「さんすう」の問題をExcelの問題にすり替えての質問かw
俺もそれ思った。 Excelの質問じゃなくて、算数の質問だよな。
324 :
名無しさん@そうだ選挙にいこう :2006/12/08(金) 23:03:04
【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 OK 【4 VBAでの回答の可否】 OK VBA関連で質問を二つお願いします Sheet1にボタンオブジェクトをつけて そのボタン押下その実行したらSheet2に移動してそこで何かしらのの作業をして 再びSheet1に戻ってくる動作をしたいのですが そのときに画面上は動かずにずっとSheet1のままでいたい場合どうすればいいのでしょうか? また保存先選択オブジェクトを起動する記述は Application.GetSaveAsFilename("C:\〜)だと思いますが これを起動せずにあらかじめ設定されている場所に指定しているファイル名で保存したい場合のやり方をお願いします 選択オブジェクトを出す方法はすぐに捜せたのですが、出さない方法は探しきれなかったのでお願いします
>>324 (1)Application.ScreenUpdating
(2)SaveAs
326 :
名無しさん@そうだ選挙にいこう :2006/12/08(金) 23:25:06
A1の内容が数字かどうかを判定するのは =ISNUMBER(A1)だと思いますが これがA1のセルの書式が文字列の場合でも使えるようにしたいのですが わかりますでしょうか? VBAでも回答可能です
Excel VBAのLike演算について質問です。
http://www.officetanaka.net/excel/vba/tips/tips35.htm このページの例を参考にしてLike演算を使ってみたんですが、上手く行きません。
----------------------------------------------------------
上のような住所録で「東京、横浜、千葉ではない住所を赤字」にするには、次のようにします。
Sub Sample1()
Dim i As Long
For i = 1 To 8
If Cells(i, 1).Value Like "[!東京,横浜,千葉]*" Then Cells(i, 1).Font.ColorIndex = 3
Next i
End Sub
----------------------------------------------------------
これって間違ってませんか?
>>326 =ISNUMBER(VALUE(A1))
但し空セルでもTRUEが返るんで、それじゃ不味いって場合は
IF関数で例外処理して。
>>327 既出だけど間違いだよ。まだ直ってなかったんだね。
>>327 そうでしたか。
過去ログ見れないんですが、
これを正しく機能させる方法はありますか?
330 :
名無しさん@そうだ選挙にいこう :2006/12/09(土) 02:13:38
会社のエクセルで 丸の中に文字の入っている記号?を使いたいのですけど どうやったら出来ますか? ○に「右」や「上」などは『記号』を変換したらあったのですけど 「秘」や「裏」、「特」などはありませんでした。 それらが使いたいのです。 環境は、当方初心者で、ウィンドウズ、インターネットには繋いでない。といった 感じです。よろしくお願いします。
???????????????? ???????????????? ????堰H?????? ?
>>330 挿入→記号と特殊文字。
Excelのバージョンが2002or2003しかムリ。
>>331 ( ´,_ゝ`)プッ
化けた・・・
334 :
名無し募集中。。。 :2006/12/09(土) 02:36:50
>>330 フォントの大きさを調整して
図形の○を透明で乗っければいい
>>329 正規表現を使った方がいいが、どうしてもLikeでやりたいなら逆転の発想で
If Not ("東京,横浜,千葉" Like "*" & Cells(i, 1).Value & "*") Then Cells(i, 1).Font.ColorIndex = 3
但し、都道府県名ならこれで問題ないが、"江東区,台東区"に対して"*東区*"がマッチしてしまうので
こういった部分一致を避けるなら「",江東区,台東区," Like "*," & Value & ",*"」かな。まあ適当に工夫しな。
>>336 なるほど!これは面白いですね。
色々工夫してみます。
ありがとうございました。
339 :
名無しさん@そうだ選挙にいこう :2006/12/09(土) 16:14:05
エクセルですでに完成している表の指定した列の数字に一定の数字を足すことはできますか? 例えば 2000 3000 4000 3000 とあった場合すべての数字に+1000ずつ足せればいいのですがやり方がわかりません。
1000をコピー、形式を選択して貼付け→加算
初心者なんですが、エクセルを勉強できるオススメのサイト教えてください。
342 :
名無しさん@そうだ選挙にいこう :2006/12/09(土) 21:01:24
>>341 Google
Excelの全てを網羅してるサイトなんてないので、
その時々で必要な情報を探せ。
すんません。 日付を入力するのに、「06/12/09」とか打ってたら時間も掛かるし字数も多くて面倒なので、これと同じデータをモット早く入力できる方法ないでしょうか?例えば、あらかじめ年月を決めておき、あとは日付を入力するだけで、自動的に年月日表示してくれるとか。
>>344 別セルで良いならDATE関数で1,2引数を固定して、
第3引数で入力セルを参照すれば、日の入力のみでシリアル値を返せる。
同一セルじゃなきゃ困るってならVBA必須。
346 :
名無しさん@そうだ選挙にいこう :2006/12/09(土) 22:11:53
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可(よくわかりませんが挑戦してみます) 【5 検索キーワード 】 思いつきませんでした "Aさん挨拶" "Bさん挨拶" "第1部終了" 0 301 3001 "Cさん挨拶" "Dさん挨拶" "第2部終了" 0 601 3601
>>345 ちょっと意味がわかりません。
簡単にはできないという事でしょうか?
348 :
346 :2006/12/09(土) 22:12:55
改行多すぎエラーが出るので2レスに分けました。 上のような配置のタイムテーブル(数字の単位は秒)のテキストファイルを エクセルで読み込んで自動処理で下のようにしたいです。 00:00:00 Aさん挨拶 00:05:01 Bさん挨拶 00:50:01 第1部終了 00:00:00 Cさん挨拶 00:10:01 Dさん挨拶 01:00:01 第2部終了 なお、部の数は数個、1部あたりの項目数は10個前後で共に変動します。 時間の変換はTIME関数でよいと思ってます。 結果はコピーしてテキストファイルにするので(そこまで自動で出来ればなおよいですが、 面倒そうなので手動でするつもりです)、周りに元データのゴミが残ってもかまいません。 ややこしいとは思いますが、何かよい方法をご教授ください。
350 :
名無しさん@そうだ選挙にいこう :2006/12/09(土) 22:22:48
>>346 ,348
テキストデータのフォーマット定義をきちんと書け。
>>346 もうちょっとマシなテキスト形式にできないの?
xmlとかcsvとかtsvとか。
>>346 1回限りの作業なら、VBA書くよりこうするかな。
はじめにインデックスをつけて作業すれば簡単。
テキストファイルをExcelで開く。
1.A列に空白列を挿入、B列にデータがくるように配置
2.A列に1行目を1、2行目を2というように、インデックスをつける
3.B列でソート
4.B列が数字の物だけ、AB列をCD列に移動
5.A列でソート
6.C列でソート
7.4でできたAB列の空白を削除してつめる
8.数字を時間に変換、やり方はお任せ
9.AC列を削除してつめる
355 :
354 :2006/12/09(土) 22:41:01
ごめん、数字と文字列が逆だった。 読みかえてちょんまげ。
356 :
346 :2006/12/09(土) 22:45:49
>>351 すみませんが意味がよくわかりません。
単に上の文字列をメモ帳にコピペして保存したものと同じなのですが。
あと、どういった情報が必要でしょうか。
>>352 既にこの状態で存在しているので変換作業が必要になります。
そのまま拡張子をcsvにしてもきっと意味ないんですよね。
>>354 ファイル数にして数百個あるので自動処理したいんです。
ご丁寧に説明していただいて恐縮です。
>>356 項目は必ず""で囲ってあるのかとか
時間が先、項目が後になることは無いのかとか
区切りは必ず空改行が入るのかとか。
お前の頭の中では当たり前に決定してることなんだろうが
>>346 見ただけじゃ、「こうなのかな」という予測しか出来ない。
きちんと説明している条件は、「部数、項目数は可変である」ってことだけだ。
あとは例(
>>346 )を一つかいただけで何の説明も無し。
君はクイズ出題者ではなく質問者なんだから、回答者に予測を要するような聞き方するな。
358 :
346 :2006/12/09(土) 23:01:19
>>357 すべて
>>346 の例のとおりだと思っていただいて結構です。
特に例外はないので説明不要だと思っていましたが説明不足ですみません。
> 項目は必ず""で囲ってあるのかとか
必ず囲ってあります。
> 時間が先、項目が後になることは無いのかとか
一切ないです。
> 区切りは必ず空改行が入るのかとか。
必ず入ります。
>>354 でできるなら
その作業を「マクロの記録」で。
>>358 Sub Test()
Const strFilePath = "C:\hogehoge.txt" ' ファイルパスを指定
Dim strLine As String
Dim lngTimeRow As Long
Dim lngLabelRow As Long
Open strFilePath For Input As #1
Do Until EOF(1)
Line Input #1, strLine
If strLine Like """*""" Then
lngLabelRow = lngLabelRow + 1
Cells(lngLabelRow, 2).Formula = "=" & strLine
ElseIf IsNumeric(strLine) Then
lngTimeRow = lngTimeRow + 1
Cells(lngTimeRow, 1).Value = TimeSerial(0, 0, CInt(strLine))
ElseIf strLine = "" Then
If lngTimeRow = lngLabelRow Then
lngTimeRow = lngTimeRow + 1
lngLabelRow = lngLabelRow + 1
End If
End If
Loop
Range(Cells(1, 1), Cells(lngTimeRow, 1)).NumberFormatLocal = "hh:mm:dd"
Close #1
End Sub
361 :
346 :2006/12/09(土) 23:15:54
>>359 部数、項目数が不定なので、具体的には無理がないですか?
私のレベルではやり方がわかりません。
>>360 ありがとうございます。
やはりVBAがベストなんでしょうね。
VBAの使い方を勉強して、必ず結果報告に来ます。
時間がかかるとは思いますが、よかったらまた覗きに来てみてください。
362 :
346 :2006/12/09(土) 23:43:50
>>360 大体希望通りに出来たのですが、時間の秒の部分がすべて「00」になってしまうようです。
不慣れなもので、私のミスなら申し訳ないのですが・・・。
>>362 ゴメン、凡ミスっす。
"hh:mm:dd"→"hh:mm:ss"
364 :
346 :2006/12/10(日) 00:38:13
>>363 ありがとうございます、無事使えているようです。
活用させていただきます。
365 :
名無しさん@そうだ選挙にいこう :2006/12/10(日) 01:03:48
ボタン王火事に A行の中から指定の文字列を検索(その文字列はA列には一列しかない者と仮定) その検索された列を全選択する こういうVBAを作りたいのですが、とっかかりがどうしてもつかません マクロの記録で見ても検索と列選択は動作が切り離されてしまいます つまり検索された文字列の列を全選択というのがどうしてもわかりません 誰か教えてください
Range("A:A").Find("ボクッ子").EntireRow.Select
>>354 横からですが、なるほどそういうやり方もあるんですね。
これは使える技ですね、勉強になりました。
>>346 には意味がわかってなさそうですが。
>>341 ありがとうございました!
>>342 ググってはみたんですが、沢山あってエクセルについてあまり知らないので
どんなサイトが参考になるのか聞きたかったんです。
レスありがとうございました。
>>372 とても参考になりそうです。ありがとうございました!!
374 :
名無しさん@そうだ選挙にいこう :2006/12/10(日) 20:39:10
For i = 1 To Last Print #FileNo, "'"; Print #FileNo, RTrim(.Cells(1,i).Value); Print #FileNo, "'"; Print #FileNo, ","; Next i VBAでこういったFor文でぐるぐる回してセルの内容を書き出したい場合に 1番最後の","だけが不必要なので削除したい場合 削除する方法とかありますでしょうか? やりかたとしては Print #FileNo, ","; を初めに持ってきてi = 1の場合だけ飛ばすって方法もあったのですが あまり綺麗じゃなかったので
>>374 削除は出来ないよ。
For Outputを使ってると思うが、文字通り出力だけのモードなんで。
因みにテキストでは、新規出力、追記出力、入力の3モードのみで、入出力が出来るモードは無いはず。
一度出力してから削除を行いたいなら、そういうI/Oを持つAPI使うか作るか
変数に出力しておいて、最後に変数から1文字削って、その変数をファイルに出力するとか。
因みにForを抜けるとカウンタ変数が次の数(Step指定無しなら+1)になる仕様を利用したこんな方法もある。
For i = 1 To Last - 1
Print #FileNo, "'" & RTrim(Cells(1,i).Value) & "',";
Next i
Print #FileNo, "'" & RTrim(Cells(1,i).Value) & "'";
>>375 なるほど
やっぱ多少醜くても374のやり方が1番無難そうですね
ありがとうございます
377 :
名無しさん@そうだ選挙にいこう :2006/12/10(日) 21:58:52
シートの保護をしている状態で VBAで自動的にフィルタやシートの追加などをしようとすると 当然出来ないと思いますが やる場合にはやはりVBAで一度シートの保護の解除をして 最後にシートの保護をする方法しかないのでしょうか?
初心者って、コード量が多い=汚い・醜い だと勘違いしている人多いよね。 冗長な処理は良くないが、必要な処理でコードが増えるのは悪い事じゃないし むしろ可読性を高めたり例外処理をきちんと取ったりでコードが増えるのは良いことなのに。
>>377 当たり前でしょ。
解除せずに改変できちゃったら何のための保護なんだか。
380 :
名無しさん@そうだ選挙にいこう :2006/12/10(日) 23:02:12
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 少し 【4 VBAでの回答の可否】 可 起動中のbookのファイルパスを知る方法を教えて下さい。
>>380 パスワードじゃなくて保存場所の事かな?
それならプロパティーを見る。
ThisWorkbook.FullName
383 :
380 :2006/12/10(日) 23:41:07
わかりました。どうもありがとうございました。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 EXCEL カウントダウン 日数 出勤 当日から後何日月内に出勤日があるかをが一目でわかるようにしたいです。 試した事: 出勤日を○、休日を/で表す1か月分の表を作り、=COUNTIF(A2:AE2,"○")で、出勤日数をカウント。 ただこの数字を、毎日出勤日にはマイナスし、休日にはマイナスしないようにカウントダウンしていく 式の作り方が思いつきません。アドバイスをお願いします。
土日祝の出勤もあるん?
386 :
384 :2006/12/11(月) 00:48:26
すみません。 シフト制なんで休日は不定です。 上に書いた表については手入力で作りました。
>>386 ブックに具体的な要望イメージを書き込んでうp
>>384 いまいち判らないけど予想---1行目:日付/2行目:出欠---で、とりあえず日付直下の1名は
以下で計算できるかと。
A4=TODAY()
B4=COUNTIF(INDIRECT(ADDRESS(1,MATCH(A4,A1:AE1,0),4)):AE2,"○")
#適当なセル(A4)に「今日」を表示 -> 「今日」にあたる列を取得
-> その列以降、月末の列(AE)までの"○"の数をB4に表示
日付以降の行に複数人いて各人ごとに計算するのであれば他に処理が必要ですけど。
389 :
名無しさん@そうだ選挙にいこう :2006/12/11(月) 10:02:05
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 excel atokの設定 atokの設定では、数字や括弧、スペースなんかは半角設定をしているのにexcelを使うと勝手に全角変換されたりします。 excelを終了してもatok自体の設定が変更されているので使いにくくて仕方ありません。 excelとatokは相性が悪いのでしょうか?
>>384 =COUNTIF(OFFSET(B2:AF2,0,DAY(TODAY()),1,31-DAY(TODAY())),"○")
気を利かせて31日分まで計算するように作ってみた
Offset関数で参照する配列の範囲を変えてるくらいしかしてないので、内容はヘルプを見ながら確認してチョ
391 :
390 :2006/12/11(月) 10:32:05
ゴメン × 31日分まで ○ A列に名前が入るとして
392 :
名無しさん@そうだ選挙にいこう :2006/12/11(月) 11:05:27
フォトショップで開けるように保存するには何を選択したらいいですか?
スレ違い
>>392 スクリーンショット
または
範囲を選択して、Shiftキーを押しながら編集 → 図のコピー
395 :
392 :2006/12/11(月) 11:46:54
>>394 有り難うございます。
初めて名簿表を作ったのですが枠も一緒にコピーすることは無理なんでしょうか?
>>389 atokの「テンキーの文字を半角」の設定ですよね?
うちでは、ちゃんと半角で入力されるけど。
入れ直してみれば?
うちはExcel2003だけど、以前97使ってた時もいけてた。
インストールはatok→Excelの順で行ったと思う。
>>395 枠って何だろう。
スクリーンショットじゃダメなの?
397 :
389 :2006/12/11(月) 12:26:37
398 :
392 :2006/12/11(月) 12:29:13
>>396 区切りの縦線と横線です
スクリーンショットが何か解りませんorz
MacOS Xで、バージョンはXです。
399 :
名無しさん@そうだ選挙にいこう :2006/12/11(月) 12:32:18
401 :
名無しさん@そうだ選挙にいこう :2006/12/11(月) 12:35:33
>>398 もし罫線なら
範囲を選択して
書式
↓
セル
↓
罫線
で何種類かあるけど…。
402 :
名無しさん@そうだ選挙にいこう :2006/12/11(月) 12:41:01
スレ違い 答えてもらったのに試しもせずに又質問 さらに後出し条件 自覚したまえ。
>>402 注意は良いが、そんな事で
ageてくる気遣いの出来なさもなんとかしたまえ。
気遣いも何も、TOPに居るのにsageる意味ないじゃんw
>>392 は画面キャプチャだと、解像度が粗いとか言い出しかねないので
プリントしてスキャンするのが手っ取り早いと思う。
>>402 その性格の悪さをどうにかした方がいいな。
教えてやった奴が文句言うなら解るが。
リアル社会でもグチグチ文句たれてんのか?ww
406 :
403 :2006/12/11(月) 13:19:54
>>404 すまん。君がキツい書き方してたのでつい。
実際、専ブラなもんで、上がってるか下がってるかは正直分からんが、
各板の質問対応者のほとんどがそうだと思うけど、メール欄見て、
その書き込みが質問かどうか判断してるもんでね。
すまんかった。
>>405 やめれ。君も言い方悪いな。
407 :
名無しさん@そうだ選挙にいこう :2006/12/11(月) 16:38:47
自分の世界の中しか理解できないバカばっかしだね age!sage!ドウでもイイジャン
はいはい、あんたは賢い、あんたが大将、 バカばっかし相手してないで、お山へ帰れば?
409 :
403 :2006/12/11(月) 17:19:24
俺が悪かった。もうよせ。 ↓次の質問ドゾー
サブスティテュートって恥ずかしくて言いづらいんですけどどうにかなりませんか?
411 :
名無しさん@そうだ選挙にいこう :2006/12/11(月) 19:59:36
エクセルやワードが入ってないパソコンはインストールしないと無理なんですか? 他のパソコンからコピーできますかね?
414 :
名無しさん@そうだ選挙にいこう :2006/12/11(月) 21:36:59
お願いします。 コマンドボタンでデータの番号を変更するようにしたいと思ってますが 最後のMsgBoxが出力されなくて困ってます。動作自体は問題なく、 特にエラーなどはでません。どこか間違えているでしょうか? Private Sub CommandButton1_Click() '10件戻るボタンを押したときの処理 Dim ShowRow As Long ShowRow = Label1 + 1 With Worksheets("itemdata") If ShowRow > 11 Then Label1 = .Cells(ShowRow, 1).Offset(-10, 0).Value ElseIf ShowRow <= 11 Then Label1 = .Cells(2, 1).Value ElseIf ShowRow = 2 Then MsgBox "最初のデータです" End If End With End Sub
>>415 ワォ!
ありがとうございました。吊ってきます orz
417 :
名無しさん@そうだ選挙にいこう :2006/12/11(月) 22:38:31
【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 savechanges 基本的な質問で申し訳ありませんが、 マクロで、bookを保存して終了、というスイッチを作りたいのです。 ActiveWorkbook.Close savechanges = True だと、保存せずに終了し、 ActiveWorkbook.Close savechanges:=True だと希望通り、保存して終了になります。 逆に、 ActiveWorkbook.Close savechanges = false だと保存して終了 ActiveWorkbook.Close savechanges:=false だと保存せずに終了、となります。 似たような形のマクロですが、なぜそうなるのか理解できません。 教えてください。
418 :
名無しさん@そうだ選挙にいこう :2006/12/11(月) 22:47:13
419 :
名無しさん@そうだ選挙にいこう :2006/12/11(月) 22:57:22
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 いいえ アンケートの複数回答の集計で、1つのセル内にコンマで区切って、 (2,4,13)←このように入力していまいました。 COUNTIFだと、1つのセル内に1つの数字しか集計くれないようです。 1つのセルに1つの数字を置き換える方法か、 なにか代用できる方法は無いでしょうか? 教えてください。お願いします。
>>419 括弧を取り除いて、txt形式で保存
Excelでコンマ区切り形式で開く
421 :
名無しさん@そうだ選挙にいこう :2006/12/11(月) 23:06:12
>>420 ありがとうございます!!
早速やってみます。
>>417 :=は引数名指定演算子
=は代入or等価演算子
Sub Test(Value)
Debug.Print Value
End Sub
というのを作ってみると良い。Debug.Print ValueではなくMsgBox Valueでもいいけど。
Test Value = True
は、第一引数に「Value = True」の等価演算結果を渡す。Valueは宣言されていない変数として扱われる。
宣言されていない変数はVariant型であり、Variant型の初期値はEmpty。
Empty = Trueの結果はFalseなので、TestにはFalseが渡る。
Test Value:=(Value = True)と同じ。
Test Value = False
は、上と同じく「未宣言変数Value = 定数False」の結果が第一引数。EmptyはFalseと一致するので結果はTrue
Test Value:=True
は、Valueという名前の引数としてTrueを渡すという意味。そのままTrueが渡る。
Test Value:=False
も同じく引数名指定でFalseを渡してる。
Option Explicitで変数の宣言を強制していれば、上二つはエラーになる。
>>419 =421
そんなマンドクサイ方法じゃなくても、
1)「置換」で括弧取り除く。
2)データ→「区切り位置」で「,」の位置で区切る
これで一瞬じゃないかい。
>>384 です。
回答してくださった方、ありがとうございました。
これからいろいろ勉強します。
425 :
414 :2006/12/12(火) 00:16:20
条件が重複しないようにいろいろ変えてやってみましたが やっぱりMsgBoxが出力されません・・・ エラーは出ないしデバッグでも最後までスルーしちゃうし 全く原因がわからず、どなたかhelp頼みます・・・ Excel2002ですが仕様でしょうか・・・
Excel2003 VBAで「変更前」「変更後」というシートを作ってプログラムソースのコンペアツールを作ろうと思ってるんですが、皆様ならどんな感じで作りますか? 自分はマッチング形式で一行づつ突き合わせようと思ったんですが、全然ダメな事に気付きました(´・ω・`) シートはいくつ増やしても構いませんので、 どの行がINSARTされて、 どの行がREPLされて、 どの行がDELETEされたのか識別できれば良いんですが。。。
>>426 Excel関係有るの?
とりあえずdiffのソース辺りを参考にすれば?
428 :
名無しさん@そうだ選挙にいこう :2006/12/12(火) 01:00:51
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 はい すいません 選択されているセル(列行番号は不特定)の列の 4行目から10行目を選択するという処理をVBAでしたい場合 どういった感じになるのでしょうか?
>>428 ActiveCell.Column で、選択されている列が分かるよ。
430 :
名無しさん@そうだ選挙にいこう :2006/12/12(火) 01:37:26
>>428 Selection.Rows("4:10").Select
>>414 もう試してるかもしれないけど、先にElse If <=11が実行してるから
Else If =2が実行しないんじゃないの?違ってたらゴメン
432 :
414 :2006/12/12(火) 04:26:48
>>431 できました・・・本当にありがとうございます。
こんな初歩的なことに気付かないなんて・・・。・゚・(ノД`)・゚・。ウエエェェン
433 :
名無しさん@そうだ選挙にいこう :2006/12/12(火) 12:59:06
>430 違うよ
つーか>415で>431と同じ指摘がされていて>416で解決していたのでは?
435 :
名無しさん@そうだ選挙にいこう :2006/12/12(火) 16:50:22
教えてください。 エクセルで表を作成しています。 コントロールキーを押しながらマウスのホイールを動かすと 大きくなったり小さくなったりしますが、急にできなくなりました。 どうすれば元の通りなるか教えてください。
>>435 まずは再起動してみな。環境が糞だと何かの拍子に
キーメッセージがおかしくなったりする場合がある。
437 :
名無しさん@そうだ選挙にいこう :2006/12/12(火) 17:38:50
再起動したけど直りません。 ワードはできるんですけど・・・・
じゃあ次はOS再インストール 面倒とか言うなよ
>>438 なんでOSなんだよw
順番的にExcelの再インストールだろ。
>>437 てゆーか、ツール→オプション→全般タブ→IntelliMouseの〜
のチェックが入ってるだけだろ。
440 :
419 :2006/12/12(火) 19:00:53
>>423 ありがとうございます!!
残りの集計でやってみます。
本当に助かりました。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2002
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 エクセル スクロールバー
スクロールバーといっても、あとでシート上に貼り付けるやつじゃなくて、
普通に最初に開いたら右と下に表示されてるやつのことです。
ttp://oshiete1.goo.ne.jp/kotaeru.php3?q=1471649 ここでの質問と同じ症状なんですが、
エクセルのスクロールバーをマウスでドラッグして動かすと、
シートもそれに合わせて上下左右に移動していたのが、
行番号、列番号を表示するだけで、スクロールバーに合わせての移動ができなくなりました。
ドラッグしていたボタンを離すと、パッと目的地に移動します。
ドラッグに合わせてスムーズに移動させたいのですが、どうしたら良いのでしょうか?
大変困っています。仕事溜まってるのに…
助けて下さい、お願いします…。
>>441 それが普通じゃねーの?
うちのExcelは最初っからそういう動作だが。
スクロール同期する他のソフトと勘違いしてるとか?
443 :
441 :2006/12/12(火) 20:47:17
さっそくレスありがとうございます。 それが勘違いじゃないんですよ…。 会社のパソコンは、スムーズに動くんです。 家と会社で設定をいろいろ見比べてみたんですが、 結局できなかったんです。
>>441 Excelのバージョンの問題では?
うちでやってみると、97だと、パッと移動、2003だと、スムーズ移動だ。
445 :
名無しさん@そうだ選挙にいこう :2006/12/12(火) 21:25:01
Worksheets(Sheet1).Select Sheets(Sheet1).Range(Cells(1, 1), Cells(14, 14)).Select Sheet1のA1:N14を選択するという記述なんですが どうしてもうまく行きません どこがダメなんでしょうか? できればセルの特定はCells(1, 1)の方法がありがたいです 教えてください
447 :
名無しさん@そうだ選挙にいこう :2006/12/12(火) 21:29:44
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 はい VBAでシートの保護解除は ActiveSheet.Unprotectですが ActiveSheet.Protectで 再度シートの保護をする時、以前の状態のままに戻したい場合 一個一個指定せずに覚えこませる方法ってありますでしょうか?
448 :
名無しさん@そうだ選挙にいこう :2006/12/12(火) 21:36:45
あのさ、コード書き始めるまえに最低限デバッグの仕方は覚えようよ。 何処でエラーが出てるかを把握するだけで解決する問題も多いからさ。
>>448 Worksheets("Sheet1")
↑ ↑
「"」 「"」
>>451 それは「やさしさ」とは言わないはずさっ!
454 :
名無しさん@そうだ選挙にいこう :2006/12/12(火) 21:53:12
>>449 ???
例えば
Worksheets("Sheet1").Select
ActiveSheet.Range("A1:N14").Select
ActiveSheet.Range(Cells(1, 1), Cells(14, 14)).Select
たとえば
このコードを流した時に
1行目と2行目だけだと普通に通りますが
1行目と3行目だけだとエラーが起こります
つまり2行目と3行目の違いがよくわかりません
RangeとCellsのシートが別のを指してるんだろ
ああ、Sheet1以外にコード書いてんの?
なるほど、て事は、これなら通る訳か。 ActiveSheet.Range(ActiveSheet.Cells(1, 1), ActiveSheet.Cells(14, 14)).Select
>>456 、457
やっとわかった
そういうことね
ありがとうございます
460 :
名無しさん@そうだ選挙にいこう :2006/12/13(水) 00:44:48
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】否 【5 検索キーワード 】 ? エクセルシートの一部分を第三者に書き込む事ができないようにしたいのですが、 ヘルプをみてもうまくできませんでした。 どうすればいいのか教えてください。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】? A B 1 あ社 40 2 い社 30 3 う社 10 4 え社 22 上のような表から LARGE($B$1:$B$4,1) などでB列のデータで順位をつけ、 なおかつB列の値のかわりにA列の文字列(あ社、い社等)を表示するにはどうしたらいいのでしょう?
>>402 RANK関数と、VLOOKUP関数をヘルプで調べてみ。
464 :
名無しさん@そうだ選挙にいこう :2006/12/13(水) 16:14:52
関数の初心者ですが 例えば11月1日から 12月10日まで何日あるか関数使って求める時 どのようにやるか教えて下さい
>>464 ヘルプで日付関数や時間関数を調べると
分りやすく解説されてるよ
質問ですw セル内に根号(√)を打つ方法はありますか? 既定の数値に根号の屋根(?)を掛けて表示できません ルート2なら[√2]と表示するのが限界ですか?
469 :
462 :2006/12/13(水) 17:33:20
>>463 VLOOKUPで出来ました。ありがとうございますた。
470 :
名無しさん@そうだ選挙にいこう :2006/12/13(水) 18:57:23
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 質問です。 User Formにmicrosoft listview Controlを作りcheckboxを使用しようと思いますが、 チェックした複数の情報を取得できません。 "CheckedItems プロパティ","CheckedIndices プロパティ"を使用すればと調べたのですが、 オブジェクトブラウザーにプロパティがなく、使用の仕方もわかりません。 どうすればいいでしょうか?
ExcelのListViewは挙動がおかしくてずっと前に使うのをやめたなぁ。
>>470 > "CheckedItems プロパティ","CheckedIndices プロパティ"を使用すればと調べたのですが、
全然違う。
それは.NET FrameworkのListViewだろ。
VBAで使えるのはVB6用のもので、ActiveX OCXコンポーネントというもの。
.NET Frameworkのコントロールとは別物。
因みにVBAで使うとしてもVB6分野の話なので、これ以上はここでは聞かないでね。
OCXとして調べればすぐ解ることだし。
473 :
470 :2006/12/13(水) 20:57:55
>>472 ありがとうございました。
OCXで調べてみます。
474 :
名無しさん@そうだ選挙にいこう :2006/12/13(水) 21:33:13
Sheetタブで右クリックすると出る、 コードの表示を非活性化させるにはどうすればいいのでしょうか? シートの保護、ブックの保護、オプションの設定いずれとも やってもできなかったので教えてください
476 :
名無しさん@そうだ選挙にいこう :2006/12/14(木) 16:57:37
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 改行 セル内 ダブルクォーテーション セル内改行(ALT+Enter)をしたセルを、 コピーしてテキストエディタに貼り付けると、 ダブルクォーテーションで囲まれてしまいます。 防ぐ方法はありますか? 【例】 <セルの内容> aaa(改行) bbb <テキストエディタ貼り付け結果> "aaa bbb"
>>476 手間ですがセルをWクリック後文字を選択するか、セルを選択後に数式バーから
コピーすれば付加されませんよ。
数が多いなら、後でテキストエディタでまとめて置換するのが楽ではないでしょうか?
478 :
476 :2006/12/14(木) 17:54:21
>>477 回答ありがとうございます。
わかりやすくするためシンプルな質問にしました。
ですが実は、現在は数式で
>>476 のような状態を作り出しています。
<例>
=A3 & CHAR(10) & B3
ですので、セルの文字自体を選択という方法は使用できません。
また、ダブルクォーテーションが値として入っている場合、
ペースト後のデータがダブルクォーテーション2つに置換されてしまう
という現象も起きています。
ですので、テキストエディタでまとめて置換というのも
「簡単には」できません。
なにかよい方法はないでしょうか?
VBA使えばいいじゃん。 セル内改行を普通の改行としてコピーするマクロをCtrl+Shift+Cに割り当てるとか。 因みにExcelの設定でどうにかするとかは出来ないよ。それやるとExcelで矛盾が発生するから。
>>478 貼り付け後にテキストエディタでの編集(置換)でいいのであれば
="["A3 & CHAR(10) & B3 & "]"
とでもすればいいのではないでしょうか?
# 後の置換に影響の無い文字列を付加する
知識あるのか無いのか分からんなw 少しでも考えるのが嫌なのか…?
483 :
476 :2006/12/14(木) 18:54:05
みなさま、ご回答ありがとうございます。 VBAを使えばできそうだというのはわかっていたのですが、 「超」簡単にできる方法はないかと考えていました。 ちなみに、今作成中のシートは、定数設計書からコードを生成するものです。 職業SEなので、ツール作成にあまり時間をかけたくなかったもので、 数式や設定だけで何とかなればと思っていました。 (「定数に設計書がいるのか」という論議はまた別の話でお願いします。)
俺の知ってるSEとずいぶん違っていらっしゃることw おつかれさまでーすww
ツール作成に掛ける時間が何のに、2chに書き込む時間があるとは。 この程度1分もあればマクロ書けるのに。
お前が必死になって止めようとしても、どうせ476も反応してくるぞw
490 :
名無しさん@そうだ選挙にいこう :2006/12/14(木) 21:11:34
PCのことは全然知らない素人ですが、サーバ上のフォルダを見てみたら 書式を含まない見出しとレコードからなるxlsファイルが大量にあって、それが毎日追加されているんですが その場合csvにした方がHDの容量の節約になるんじゃないかと考えたんですが 敢えてしない理由ってありますか?
>>490 勝手に増えてんなら、会社の業務システムからはき出されてんじゃないの?
状況もっとkwsk
「PCのことは全然知らない素人」がサーバー管理に口なんぞ挟むな
正論ばっか言ってると人望得られんぞ
正論を言わないやつの人望ってなんだ?
ああ、紅茶が旨いんだろ。
ガキの世界では正論に反抗する子がカッコイイとか思われてるみたいで そういう子が人望というか人気を集める傾向にあります。 と言っても小学生くらいまでですが。 きっと493は小学生なのでしょう。 そうでなければ、いつも正論に叩き伏せられてる負け犬さんってとこか。
こんな質問を受け付けるスレで言い争う時点で、皆負け犬だ。 もうやめとけ。
あんた余裕が無いのね!たまの雑談は人間形成に役立つんだよ
499 :
名無しさん@そうだ選挙にいこう :2006/12/15(金) 22:21:28
【1 OSの種類 .】 WindowsXP home sp2 【2 Excelのバージョン 】 Excel2000・2002 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 textbox control rightclick 右クリック コピー フォーム上に配置したテキストボックスを右クリックしてテキストをコピーすることは 出来ないでしょうか? プロパピーを探したんですが該当する設定が見つけられませんでした・・・
>499 プロパティーな
>>499 MouseUpイベントで自作CommandBarのPopupメニュー出して
コピー項目が選択されたらテキスト内容をクリップボードに代入。
502 :
名無しさん@そうだ選挙にいこう :2006/12/15(金) 23:53:33
【1 OSの種類 .】 WindowsXP SP2 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 関数 セル 抽出 空白 A B J 1 90 内田 内田 3 22 木村 木村 4 佐藤 林 5 78 林 森田 6 鈴木 7 15 森田 B列には既に名前が入力されています。この状態でA列に数字を入力すると、自動的に任意の他の縦列(上記表では J)にその名前が表示される様にしたいのです。但し、A列に数字が入力されている人のみで、空白の人はJ列に名前は 表示されない様にしたいのです。次いでにJ列の名前が昇順に並ぶと嬉しいです。宜しくお願いします。
503 :
499 :2006/12/16(土) 00:09:11
>>500 了解です。
>>501 操作するのが素人さん(右クリコピペマシン)なものでそういうのはちょっと。
素人相手のGUI考えるのは本当にめんどくさくて嫌ですね・・・
良く入力ミスするし・・・
>>502 いまひとつ、やりたいことが判りませんが、AB列か、あるいはAB列を別場所にコピーして
昇順にするなり、オートフィルタをかけるなりでいいのではないでしょうか?
>>503 それをあなたに書けば?と、仰っているのでは?
>>502 普通にIF関数でA列の値を条件にすれば良いだけじゃん。
関数では名前の順位を付けられないから名前の昇順は無理。
A列の値での昇順なら可能だがな。
因みに一言もそうは書いてないが、もしJ列の表示は隙間をあけず
上詰めにしたいなら話は別だけど。
506 :
499 :2006/12/16(土) 00:20:44
>>504 ごめんなさい。意味がわかってませんでした。
>>501 即レスありがとうございました。やってみます。
>>502 すみません。
>>504 はいまひとつどころか全然判って(読んで)ませんね。
無視してください。
508 :
名無しさん@そうだ選挙にいこう :2006/12/16(土) 02:04:28
セルをクリック(選択)したときに、ダブルクリックしたときのように カーソルを点滅状態にする方法はありますか? シングルクリックでF2を押したときの状態にしたいんですが。
>>508 VBA使えば出来ます。
コード書けないとは書いてないので
コードは自分で書いてください。(
>>3 ★注意1)
510 :
名無しさん@そうだ選挙にいこう :2006/12/16(土) 09:29:56
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 配列 最大値 VBA A B C D E F G H I J 1 16520 A 2 16510 A 3 16500 a D G H 4 16490 A B D G H 5 16480 A B C D G H 6 16470 A B C D E G H 7 16460 A B C D E G H 8 16450 A B C E F G H I 9 16440 A B C E F G H I 10 16430 A E F G H I 11 16420 A E F H I 12 16410 E H I 13 16400 E H i 14 16390 H I 15 16380 H 16 16370 H A〜I(aとiは小文字も含む)の、 A列にある値から各最大値と最小値を求めるには? 最大値 最小値 A 16520 16420 B 16490 16440 : I 16450 16390
>>510 何がしたいかさっぱり伝わってこないw
A列で大きい順に並び替えてオートフィルタで答えっぽいものが出そうだが…
513 :
名無しさん@そうだ選挙にいこう :2006/12/16(土) 10:31:36
A〜Iの最大値と最小値を求めるだけなのだけど?
514 :
名無しさん@そうだ選挙にいこう :2006/12/16(土) 10:37:15
>>510 表の作り方を一工夫するだけで簡単にできるようになるよ
プロファイルなので作り変えるわけにはいきません
>>510 配列数式で検索とMAX、MIN関数で
条件後出しでVBAでの方法限定とか言わないでね
VBAでの方法限定。
>>517 関係ない奴が茶々入れるな。
>>513 >>2 > ▼━質問時の注意・決まり事 ━━━━━━━━━━━━━━━━━
> ・4 2回目以降の質問では名前欄に初回質問の番号を入れよう。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 非表示 一部 印刷 「画面上では表示させず」、でも「印刷・印刷プレビューには出したい」行があるのですが 可能でしょうか?
520 :
名無しさん@そうだ選挙にいこう :2006/12/16(土) 13:10:13
ボウヤ、どうしたの?
522 :
名無しさん@そうだ選挙にいこう :2006/12/16(土) 13:37:27
すみませんがよろしくお願いいたします 【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 EXCEL 並べ替え "Selection.Sort" メニューの データ - 並べ替え の優先されるキー(列) なのですが、 これの候補は3番までしか指定できないのでしょうか? 分からないなりにVBAでもがんばってみたのですが、、、 ご教授いただけるとうれしいです
>>522 3つまでのようですね
4つ以上やりたいなら優先の低い方から繰り返せばいいです
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 可 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 ループ処理 WEBクエリ VBAでhtmlのファイルを取得するコードを書きました。 for next で100回ぐらいなら正常に作動しますが、 約2000件ぐらい連続で取得させ続けると「WEBに接続中…」で 止まり、Ctrl+breakを押しても中断さず、エクセルが固まってしまいます 一晩そのまま動き続けるにはどうしたらいいでしょうか? for i = 1 to 10000 my_url = ... with activesheet.... next i の簡単なコードです。
>>525 取得先鯖の連続アクセス規制に引っかかってるとか。
(URI隠してるから実際にどうかは解らないが)
リソース不足で固まってるだけとか。(強制中断すれば解放されて元通り)
とにかく情報欲しいなら、そちらも情報出そう。
>>2 > ・3 VBAコードを貼る場合は、部分的に伏せたり省略したりせずに全て貼りましょう。
に従って、URL含めて ... の部分も全て貼って、PCのスペック(CPU、メモリ)も晒そう。
別に個人情報や社外秘情報の書かれたブックをそのままうpしろって言ってるわけやないんだからさ。
【1 OSの種類 .】 WindowsXPHOME 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 マクロが反応 オートフィル -オートフィルタ Private Sub Worksheet_Change(ByVal Target As Range) Dim r As Range Application.EnableEvents = False On Error Resume Next If Target.Value = "小計" Then ActiveCell.Offset(-1, 0).Select With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .WrapText = True .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With ActiveCell.Offset(0, 8).Select Application.CommandBars.FindControl(ID:=226).Execute End If Application.EnableEvents = True End Sub 以上のような設定をしています。 この設定をした場合に、「複数のセルを選択してDeleteキー」 「オートフィルでのコピー」などをすると”小計”以外でもこのマクロが反応してしまいます。 何かアドバイスありますか?
先頭に If Target.Count <> 1 Then Exit Sub でも入れておけば?
529 :
527 :2006/12/16(土) 17:13:54
できました。ありがとうございます。 多分ですけどIfのターゲットを一つにしたのですね。 助かりました。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count <> 1 Then Exit Sub Dim r As Range Application.EnableEvents = False On Error Resume Next If Target.Value = "小計" Then ActiveCell.Offset(-1, 0).Select With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .WrapText = True .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With ActiveCell.Offset(0, 8).Select Application.CommandBars.FindControl(ID:=226).Execute End If Application.EnableEvents = True End Sub
530 :
名無しさん@そうだ選挙にいこう :2006/12/16(土) 18:40:16
Excel2002のVBAについての質問です。 下記のコーディングの”次のステートメント”にブレークポイントを 設定して、変数bとRange((Cells(i,1),Cells(i,1)).Valueの値を 調べたら、 Range((Cells(i,1),Cells(i,1)).Valueが1で、bが0でした。 なぜbが1でなく、0になるのでしょうか。 a=50 For i = 2 To a : b = Range(Cells(i, 1), Cells(i, 1)).Value 次の ステートメント : Next i
>>530 >>2 > ▼━質問時の注意・決まり事 ━━━━━━━━━━━━━━━━━
> ・3 VBAコードを貼る場合は、部分的に伏せたり省略したりせずに全て貼りましょう。
情報出したくないなら、質問取り下げて帰ってもいいけど。
532 :
名無しさん@そうだ選挙にいこう :2006/12/16(土) 21:13:02
>>530 「部分的にコードを伏せていると質問の原因を探るのが難しくなります
早く的確な回答が必要なら状況を出来るだけ丁寧に伝えてください」
531みたいなガキ言葉で書くより、ましだろ
目糞鼻糞
534 :
522 :2006/12/16(土) 23:50:43
>>523-524 繰り返すというのに全く気づかなかったというか、安定ソートというのを
検索してやっと理解出来ました
解決法とともにひとつ勉強にもなってうれしいです
本当にありがとうございました!
535 :
502 :2006/12/17(日) 00:30:32
>504-505 レス遅れてすみません。質問内容を訂正します。 (Seet1) (Seet2) A B A 1 90 内田 内田 2 22 木村 木村 3 佐藤 林 4 78 林 森田 5 鈴木 6 15 森田 Seet1のB列には既に名前が入力されています。この状態でA列に点数を入力すると、その人の名前が自動的にSeet2のA列に上から詰めて表示されるようにしたいのです。(Seet1のA列が空白セルの人は除外) 具体的に式を教えて頂ければ有り難いです。
>>535 >自動的にSeet2のA列に上から詰めて表示
ココが関数では無理ではないでしょか?
間に空行があっていい場合についても、Sheet1のA列に入る文字列の範囲などが
わからないと具体的な数式は示せないかと。
そのあたりと、Sheet2に吐き出したデータの具体的な用途をお書きになったほうが
いいのではないでしょうか?
何故空行がダメなのかとか、Sheet2のA列を元に何をするのかとか。
最後に、自動ではありませんが、Sheet1のA列でオートフィルタをかけるというのでは
用を満たしませんか?
これだと、何を基準にかは判りませんが
>>502 の昇順というのも可能だと思いますよ。
537 :
名無しさん@そうだ選挙にいこう :2006/12/17(日) 04:46:27
>>530 b=の行でとまってるときは代入の行われる前の状態で止まってる。
もう一行進んだらbが1になると思うよ。
538 :
名無しさん@そうだ選挙にいこう :2006/12/17(日) 05:09:28
>>535 めんどいができた。
c1に=IF(A1<>"",0,1)
c2に=IF(A2<>"",C1-1,C1)
c3以下はc2のこぴぺ(れいc3に=IF(A3<>"",C2-1,C2))
行dには0,-1,-2,-3,....といれる。
e1に=RANK(D1,$C$1:$C$6)、で、以下こぴぺ
でf1に=OFFSET($B$1,E1-1,0)、で以下こぴぺ
A B C D E F
1 90 内田 0 0 1 内田
2 22 木村 -1 -1 2 木村
3 佐藤 -1 -2 4 林
4 78 林 -2 -3 6 森田
5 鈴木 -2 -4 #n/a #n/a
6 15 森田 -3 -5 #n/a #n/a
>>537 b=の次の行で止めてると書いているようだが
540 :
名無しさん@そうだ選挙にいこう :2006/12/17(日) 11:11:24
>>539 そうでした、見落としてました…
となるとむずかしいですね。けどできました。
sheet1に
Private Sub Worksheet_Change(ByVal Target As Range)
Me.Range("a1") = 0
End Sub
530のコードに
dim b as Range
をsubの外につけくわえる。で、
Set b = Sheet1.Range("a1")
をどこか上のほうに入れる。
sheet1がactiveの状態でまくろを実行すると
代入の直後、次のステートメントに行く前にchangeイベントが実行されてbが0になる。
どんなもんじゃ〜い!
On Error Resume Next
543 :
名無しさん@そうだ選挙にいこう :2006/12/17(日) 18:52:13
VBAのコンボボックスでリスト項目で1,2,3と作ったのですが 1を選んでコマンドボタンを押せば1のマクロが実行、2を選んでコマンドボタンを押せば2のマクロが実行と なるようなプログラムを教えてください。 Private Sub UserForm_Initialize() ComboBox1.AddItem "1" ComboBox1.AddItem "2" ComboBox1.AddItem "3" End Sub --------------------------------------------- Private Sub CommandButton1_Click() このコマンドボタンのプログラムがわかりません
>>543 引数とか条件分岐とか、VBAの超基本的なテクで解決する。
これが出来ないレベルならVBA使うのは君にはまだ早いようだ。
使いたければ精進しろ。
545 :
543 :2006/12/17(日) 19:34:05
すいません、初心者スレで聞いたほうがいいのかな
546 :
名無しさん@そうだ選挙にいこう :2006/12/17(日) 20:23:20
自宅のpcにはエクセル2007を入れようと思いますが、会社のpcはエクセル2000です。 自宅で作成したファイルを会社の古いエクセルで読むことは可能でしょうか? 2007でしか不可能な新機能を使ったら、2000ではバグりますか?
>>545 いや、初心者ならVBAに手を出すな。
VBA使いたければ勉強しろってこと。
勉強せずに楽したい、VBA使って楽したいなんて贅沢過ぎ。
「勉強する」か「VBA使わない」のどちらが嫌か選べ。
>>546 2007で2000形式の保存をすればとりあえず読めるはず。
その際に2000形式でサポートしていない機能は削られる。
Office、Excelと言えど人間の作ったものなので、もしかしたら何処かに
バグがあるかもしれないから絶対問題ないとは言い切れないが。
>>543 Select Case ComboBox1.Text
Case "1"
処理1
Case "2"
処理2
Case "3"
処理3
End Select
549 :
名無しさん@そうだ選挙にいこう :2006/12/17(日) 21:35:13
Excel2003です。 AAAAAAAAA BBBBBBBBBBBB CCCCCC DDDDDDDDDDD EEEEEEEEEEEE FFFFFFFFF みたいな感じで改行区切りになっているテキストデータを Excelに複数のセルにコピーしたいのですが どうすれば良いのでしょうか? もちろんセルを統合すれば可能ですが、セルごとに分けて貼り付けたいのですが。 どうかよろしくお願い致します。
>>549 普通に貼れば縦6セルに分かれるだろ。
1セル1文字にしたいならVBA使いか
テキストエディタとかでTab区切りにしな。
>>550 データ→外部データの取り込み→テキストファイルのインポート
※目的のテキストファイルを選ぶ
スペースによって・・・を選択
>次へ
データのプレビューの数値スケール部を左ドラッグで区切り線が移動できるから任意の場所へ移動
>次へ
データ形式を調整する
>完了
貼り付けるセルを選択
OK
ってのぢゃダメか?
なぜ550にレス? それに、インポートではなくコピペでやりたいのでは?
うちの環境だと、改行区切りのテキストを普通にペーストすりゃ、 セルごとに分かれて反映されるんだけど、されないってのは、 何か設定があるのか?
554 :
535 :2006/12/17(日) 23:14:03
>536 >538 レス遅れてすみません もう一度確認してみます。有難うございます。
555 :
名無しさん@そうだ選挙にいこう :2006/12/18(月) 03:32:25
表の中のいたるところに 豆きのこ T 4200 ・・・ 豆きのこ T 4200 と同一データがある場合、片方の4200を6000に変えると もう片方も6000に自動でかえる方法がありますでしょか?
4200→6000なら、編集/置換え
全ての4200を6000に書き換えるなら
>>557 の言うように置換でやれば良いが
「豆きのこ」以外の4200は書き換えたくないとか、普通に入力を行った際に
自動的に置換を行いたいとかならVBA必須。
あとは4200をベタ入力せずに、参照表を作って置いて、
数値は項目に応じたものを表示する数式で入れておき、
編集は参照表側で行うようにすれば、同一項目の数値は一気に変化させられる。
こちらの方が基本的なやり方だろう。
>>557 >>558 ありがとうございます。
>参照表を作って置いて
目からうろこでした。
表内の各箇所に、あっちこっち探しながら
入力しようとしてました・・・お恥ずかしいです。
VLookup
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 SP2 【3 VBAが使えるか .】 不可 【4 VBAでの回答の可否】 不可 【5 検索キーワード 】 シート間参照 セル 2次参照 シート名に書かれた数値を 別のシート名に入力されているセルの名前として参照して表示したいのですが、 どう書けばいいのかがわかりません。 ・"A"シートのA1に100と入力 ・"B"シートのA100に123と入力 ・"A"シートのA2に、A1で入力された数値n(例の場合100)を "B"シートのA列のn番目のセルとして参照したい。 処理結果:AシートのA2には123と表示したいです。 どうかよろしくお願い致します。
そのままだとVBAを使わないと無理。 VBA無しでやりたいなら、"B"シートのB1に1、B2に2・・・ というようにIDを振れば、IDをキーにして参照できる。
>562 IDをキーにした参照方法を良かったら教えてくださいませ。 >563 INDIRECT関数の書き方が悪いのか、 同一シート名なら参照できるのに 別シートでINDIRECT関数をすると 参照されないのです(泣) ・Sheet1 A1には "B1"と入力 ・Sheet1 B1には"123"と入力 =INDIRECT('Sheet1'!A1) と入力すると 結果は0になってしまいます。
>>561 A2に、=INDIRECT("B!A"&A1)
>>561 =INDIRECT("sheet2!A"&A1)
>565-566 様 うぉぉ!!! 神!! ありがとうございました! 256分の1作業効率があがりました。
568 :
名無しさん@そうだ選挙にいこう :2006/12/18(月) 15:13:41
Windows XP Excel2003 初心者なのですが教えて下さい。 例えばA1に「清原」と入力したらB1に「5」。 「松井」と入力したら「55」という風に表示させるにはどうすれば良いのでしょうか?
>>567 殆ど作業効率上がらねーつう嫌味か?
> 256分の1作業効率があがりました。
作業効率1.004倍、1倍と殆ど変わってねーw
「作業時間が256分の1になりました」
「作業効率が256倍になりました」
なら大した効果だがな
( ´_ゝ`)ネタにマジレスカコワルイ
ネタ(わざと)じゃなくて、素で間違えたんだと思うが… とか言うと今度は571がネタでしたとかいうオチか?
( ´_ゝ`)素の間違いにマジレスカコワルイ
すみません、質問します。 A列に数値が複数並んでいて、そのうち値の小さい方から5つだけ B列に印を打ちたいのです。ただし、同じ値が複数あっても、 印を打つのは5つだけ、という風にできますでしょうか?
>>574 空いてる列(例えばE列)に縦に連番振ってから、A列で並び替え。
上から5つ色つけて、E列で再度並び替えれば、元通り。
つーか、複数あった場合どれに色付けんだ。
123455とあった場合、どっちの5に色付けんだ。
576 :
名無しさん@そうだ選挙にいこう :2006/12/18(月) 19:03:19
577 :
名無しさん@そうだ選挙にいこう :2006/12/18(月) 20:38:01
>>569 ありがとうございます。
なんとか数字から名前(漢字)を表示させる事は出来るようになったのですが名前から数字を表示させる事が出来ずに苦戦しております
先程貼って頂いたサイトも携帯からなので全部見れませんでしたm(__)m
578 :
名無しさん@そうだ選挙にいこう :2006/12/18(月) 20:43:04
【1 OSの種類】WindowsXP 【2 Excelのバージョン】 Excel2003 【3 VBAが使えるか】○ 【4 VBAでの回答の可否】○ Excelを開いた時にA1に1とあった場合、 その列の桁はすべて1桁までしか不可としたい場合どうすればいいのでしょうか? また、セルのコピペで書式が文字列のセルに違う書式のセルやAccessのデータを コピペした場合でも、セルの書式は文字列のままにしたい場合どうすればいいのでしょうか?
>>577 VLOOKUPのもとになっている表を、
番号 名前 番号
と、しておけば、番号→名前、名前→番号、両方取得出来る。
あと、Excel使ってるPCからネット繋げないのか。
>>578 いま一つ意味が分からないんだけど、
(1)VBA使わないと無理だけど、シートのChangeイベントに、A列が
更新される時に指定桁数以降は切る処理する。
(2)こっちも、更新されたセルを見て、書式が文字列でなければ、
文字列に変更するコードを書くだけ。
>>578 Private Sub Worksheet_Change(ByVal Target As Range)
Dim atai As Long, keta As Long, i As Long
i = Target.Column
keta = Cells(1, i).Value
atai = Len(Target.Value)
If keta < atai Then
MsgBox i & "桁の値を入力してください"
Target.Clear
End If
End Sub
自分でテストしてくれ
【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 excel セル クリックした時 書式を変更 A1〜A10の範囲でセルをダブルクリックした時、文字が入力され(例:○) 尚且つ、E列の同じ行(A1ならE1、A5ならE5)にある文字列に 取り消し線が付くようにするには、どのようにしたら良いでしょうか?
どのようにしたら良いでしょうか? というか、 コード書いてください。 って書けばいいのに。
>>582 初心者丸出しで、マウス操作でなんでもやろうとするから、
こんな所にお願いしに来ないとダメになるんだよ。
@キーボードで、「○」をコピーしておいて、A列にCtrl+Vでペーストしていく。
Aオートフィルタ展開→A列「○と等しい」で絞る。
B出たE列を全部選択して、セルの書式設定→フォントタブ→取消線。
決して、コードを書くのがマンドクサイ訳じゃないぞw
585 :
名無しさん@そうだ選挙にいこう :2006/12/18(月) 23:38:43
また「さんすう」の問題かw
>>585 合計値をデータラベルとして設定をする
表示場所が気になるなら全て0や1のデータを積みあげるなりして工夫して
>>585 余計なお世話かも知れないが、Y軸は"本数"じゃなくて"購買数量"じゃないのか
常識的に考えて・・・
589 :
名無しさん@そうだ選挙にいこう :2006/12/19(火) 12:58:29
以前働いていた場所でマクロツールをインストールしたのですが、アンインストールしてもプロジェクトが残ってしまいます。 モジュールの開放もしたのですが、すべて開放できないようです。ここの会社でも似たようなツールを入れるようなのですが、似たようなツールなので内部で動きが変わってしまって使えないんです。誰か完全にプロジェクト開放方法教えていただけませんか。 アドインも入っていますが開放できません、、、 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 マクロの開放、プロジェクト解除
参照設定じゃね?
なんか答えてる人って偉そうだよね。 まあ、偉そうでも答えてくれた方がいいのかな。
>>589 >>590 の言う通り、参照設定だな。
VBE側で、ツール→参照設定、必要ないチェックを外す。
>>591 2chだからじゃね?
全板にこういう質問スレがあるから、覗いてみ。
だいたいこのふいんき。
593 :
名無しさん@そうだ選挙にいこう :2006/12/19(火) 23:58:42
594 :
名無しさん@そうだ選挙にいこう :2006/12/20(水) 00:02:56
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可・ 「マクロの記録」で分析ツールにある回帰分析を記録させたいのですが、 記録してからマクロを実行しようとすると回帰分析のプログラムが「ありません」 みたいな感じでエラーがでます。 どうしたらよいですか?
分析ツールはマクロなわけだが、マクロの内容をマクロの記録に録ることは出来ないし 呼び出しは録れるが、そのマクロが外部呼び出し禁止ならエラーになる。
596 :
594 :2006/12/20(水) 00:29:55
>>595 呼び出しかたおせーて。
どこにあるのかもわからんのょ。
マクロから呼べないなら手動で呼べ
すいません・・・私も質問なのですが アル数値を打ち込めば自動的に割る方法ってありますか? たとえばどんな数字を打ってもすぐ20で割るようにして 120と打てばすぐ60と出るような・・・
>>598 同一セルに結果を返したいならVBA必須
VBAコード書けないとは言ってないので、必要なら自分で書け(
>>3 ★注意1)
別セルに結果を返すなら入力セルを2で割る数式を書けば良いだけ。
VBAコードなどわかりません
601 :
名無しさん@そうだ選挙にいこう :2006/12/20(水) 01:20:42
エクセルを完璧にマスターしたいのですが お勧めのスクールあったら教えてください
602 :
名無しさん@そうだ選挙にいこう :2006/12/20(水) 01:48:31
アビバとWAVEだとどちらがいいでしょう? 詳しい方よろしくお願いします
605 :
名無しさん@そうだ選挙にいこう :2006/12/20(水) 08:21:31
取り消し線だけ色を変えたいんですが、どうすれば良いですか? 書式設定で色を変えると文字も同じ色になってしまうもので
>>605 そんな方法は聞いたことがない。
見かけだけなら、オートシェイプで文字の上から色違いの線を引きゃよろし。
607 :
名無しさん@そうだ選挙にいこう :2006/12/20(水) 10:06:55
よろしくお願いします。 今日、作業していたらいつの間にか、 シートのタブ(画面の下端に表示されるやつ)が表示されなくなってしまいました。 どこをいじれば、シートのタブが再び表示されるようになるのでしょうか。 エクセル2003でつ。 宜しくお願い申し上げます。
ツール → オプション → シートタブ のチェックを付ける じゃないかな。
609 :
607 :2006/12/20(水) 10:18:41
>608 ありがとう、なおったよ。 ツールオプションシート見出しだった。 さんきゅうね
都古ちゃんへ ありがとう、なおったよ。 ツールオプションシート見出しだった。 さんきゅうね
611 :
607 ◆0RbUzIT0To :2006/12/20(水) 12:20:31
まねしないでね。
613 :
607 ◆0RbUzIT0To :2006/12/20(水) 14:19:49
>>612 一列目を入力するための列に割り当てる。
一列目にいざ数値を入力せんとする前に予め例えばその隣の列である二列目のすべてのセルに、「=cell(-1,-)/2」と入力しておく。
すると、一列目に数字を入力すると、直ちに二列目にその入力された値の半分の値が表示されるでしょう。
へけけ、へけけ、へけけのけ。
こいつはキモい
指定のセルにマウスオーバーとポップアップで予め入力しておいた文字が表示される、というようなことはできますか?
616 :
615 :2006/12/20(水) 16:17:35
すいません途中で送ってしまいました… OSはXPで、Office2003を使っています
618 :
615 :2006/12/20(水) 16:26:46
>>617 コメントと言うんですね、確かにありました
よく調べてみます、即レスありがとうございました
マウスオーバー、ポップアップ、は知っててコメント知らんのかw VBAすら関係ないExcelの機能なのに…
620 :
615 :2006/12/20(水) 16:45:00
Excelは買ったパソコンに入ってるだけでほとんど使ってないんです… 自分のやりたいことは無事出来たようです、ありがとうございました
621 :
607 ◆0RbUzIT0To :2006/12/20(水) 16:51:20
ググレカス
こいつはキモい
623 :
607 ◆0RbUzIT0To :2006/12/20(水) 17:28:49
624 :
名無しさん@そうだ選挙にいこう :2006/12/20(水) 18:34:30
>>295 さん
ありがとうございました。
でも別の問題が発生してしまいました。
○を別ファイルからVLOOKUP関数で抽出された○に対してはエラーになってしまいます。
解決方法があったら教えてください。
いいかげんにしろ
628 :
名無しさん@そうだ選挙にいこう :2006/12/21(木) 09:09:47
項目をどうすべきか相談です。 A B C 目標 実績 実績から目標を引いた数の累計 ←ここはなんて単語を入力すればいい? 1 リンゴ収穫 10 8 -2 2 10 12 =SUM(C1+(B2-A2)) ←これで合ってますか? 3 10 5 =SUM(C2+(B3-A3)) ←もっとスマートな入力あるなら教えてほしいです。 4 10 2
629 :
名無しさん@そうだ選挙にいこう :2006/12/21(木) 09:10:19
↑ずれました。すみません。お願いします。
>>628 「差分累計」とか「予実差分累計」とかじゃね?
あと数式があってるかどうかは自分で計算機で検算して確認すれ。
ゆとり教育世代?
631 :
名無しさん@そうだ選挙にいこう :2006/12/21(木) 09:44:55
正しい日本語ありがとう。 ちなみに筋肉マン あられちゃん世代です。
>=SUM(C2+(B3-A3)) ←もっとスマートな入力あるなら教えてほしいです。 =C2+B3-A3 半ドンで勉強する気がなかったツケがここにきて回ってきたのか ダメ親父だな。ゆとり世代を笑えないぞ 自分も同世代、リアル筋肉マンやってたが、それくらいわかるぞ ^^^^^↑^^^^^ (帽子とパンツ一枚で人前に立って名前を呼ばれたら手を振って答える 変態のような…水泳部員だったがゃ)
雑談は余所でどうぞ
634 :
名無しさん@そうだ選挙にいこう :2006/12/21(木) 16:20:47
=DATE(2006,A$2-1,26) ↑これの意味をおしえてほしいです。 A$2-1,26の意味がわかりません。
「教えて君」「教える君」というのは、 ネット上に存在する2種類の人種の人たちを示す揶揄された敬称のことであるが その影には「教えない君」という人種が多数いるの事にはあまり注目されていない。 しかし、実はその「教えない君」という人種が一番厄介かつ迷惑な存在だったりするのである。 そもそも荒れる原因というものは「教えない君」の、無秩序かつ、無神経なレスにある部分が 大多数なのだが、彼らの多くは、そういった感覚はどうやら持ち合わせていないようである。 第三者がそうした場面を見た場合に、誰に一番の非があるというのは 「教えない君」にあるというのが客観的事実であるのは明らかなのであるが、 彼らは認めようとしない。 表面上は、「教えない君」はネット上のルールや倫理や秩序などを叫ぶのであるが どうやら真相は、現実社会において蔑まれる存在である「教えない君」の 鬱憤晴らしのようである。 上記でそういった悲哀のレスを付けた人たちは、勇気を持って自らの弱さと過ちを認め 反省しなければならない。 それがキミたちニートの人間的に成長できる少ないチャンスなのである
638 :
名無しさん@そうだ選挙にいこう :2006/12/21(木) 17:19:31
おせっかい
639 :
名無しさん@そうだ選挙にいこう :2006/12/21(木) 17:59:09
お前が成長しろ
実は「教えて君」「教える君」「教えない君」のどれにも該当しない 「普通の質問者」「普通の回答者」が一番多い。その対応を表にするとこんな感じ。 教える君 普通の回答者 教えない君 教えて君 教える 叩く 叩く 普通の質問者 教える 教える 叩く 「教えて君」というのは、自分で出来る努力をしなかったり、決められた情報を提供しなかったりと、 叩かれて当然の存在。そしてそんな奴にすら、空気を読めずに教えてしまうのが「教える君」 そして、まともな質問者にすら、教えないどころか叩きに走るのが「教えない君」 さてここで問題になるのが、客観的ではなく、質問者の主観で見た「教えない君」が 二種類あると言うことだ。当然客観的に見た「教えない君」は、どちらの質問者から見ても 「教えない君」だが、「教えて君」から見た「普通の回答者」も「教えない君」に見えてしまう。 彼らは自分に非があることを認識していないから。 そして「普通の質問者」が本当の「教えない君」に当たってしまった場合は不運だが 多くの「普通の回答者」によりすぐに救済されるのに対して、「教えて君」は数少ない 「教える君」が現れないと回答は得られない。だから逆切れする。 つまり「教えない君」罵倒は、努力を放棄したり、場のルールを守らず質問したりして 叩き出された「教えて君」の逆切れ、負け犬の遠吠えであることが殆どである。 自分が無礼故に、「教えない君」ではなく「普通の回答者」に叩かれて居ることにも気付けずに 他人の罵倒に走る。場のルールを守れと言う当たり前のことを言われてるだけなのに 現実社会で蔑まれてるからネットでその憂さ晴らしをしてるとか 顔の見えない相手にしか虚勢を張れないダメ人間などと、妄想の限りを尽くして 相手を罵倒するが、その実それらは全て己に当てはまることだったりする。 社会に出ていない人間は、自分が礼を弁えた人間なのかどうかを認識出来ない。 というか、当たり前の礼儀を身に付ける機会がない。ネットで多く叩かれるなら それは「教えない君」に当たってるのではなく一般人に叩かれている、つまり 一般的に見てダメな人間なんだと認識し、勇気を持って自らの弱さと過ちを認め 反省しなければならない。それがキミたちニートの人間的に成長できる少ないチャンスなのである。
何この流れ。 とりあえず、皆、質問するまえに検索しなさい。 じゃあ仕切り直し。 ↓次の質問ドゾー
643 :
名無しさん@そうだ選挙にいこう :2006/12/21(木) 18:50:58
セルの書式設定で1の位を0に固定したいんですが、どうしたらいいですか?
>>644 1/10入力をして、表示形式を「0"0"」
1/10入力が嫌ならVBAのChangeイベントで。
>>644 A列に数字入れていくとして、
B列にROUND関数書いておいて、そっちを解とするのはダメ?
647 :
名無しさん@そうだ選挙にいこう :2006/12/21(木) 20:30:20
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 ? すみません。エクセルで複数のシートを作業グループでくくり、 計算を行ったところ、計算を直接入力を行った以外のシートに RC[-2]*RC[-1] と表示され、計算が行われませんでした。 詳しい方どうか原因を教えてください。
>>647 ツール→オプション→全般タブ→R1C1参照形式〜の
チェックをはずす。
わたしとてーも傷つきましーた
650 :
名無しさん@そうだ選挙にいこう :2006/12/21(木) 21:48:43
>>648 レスありがとうございます。
ただ、R1C1参照形式の〜は最初からチェックが入っていません。
チェックを入れてもはずしてもRC[-2]*RC[-1]のままです・・・
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2006 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 表 色 テンプレート EXCELには表や罫線がカラフルに色分けされたテンプレートが、外部から呼び出さなくても デフォルトで入っているとある初心者向けサイトで見たのですが、どうしても思い出せません。 表は自分で作って、塗りつぶしや罫線の色を、いくつかあるパターンの中から選ぶ・・・と言う感じだったと思います。 分かりにくくてすみませんが、どなたかお願い致します。
>>651 それはExcel2007の正式版の機能だね。
君はもうExcel2007を買ったのかい?
>>652 いえ、2007のスタイルではないんです
2006で、なにも登録しなくても確かに使えたはずなんですが・・・
Excel2007って02とか03から買い換えようと思わせるほどバージョンアップしてるの? VSTOってどのくらい使えるの?このスレで使ってる人いますか?
>>655 ああっ、それです!ありがとうございました!
こんな簡単なことでお手数おかけしてすみませんでした
今度こそしっかり覚えておきます
657 :
644 :2006/12/21(木) 22:21:03
【1 OSの種類 .】 WindowsMe 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 数式エディタ ユーザー設定 コマンド ツール→ユーザー設定→コマンド→分類→挿入にオブジェクトまではありますが 数式エディタはありません Word2000にはあります 要はツールバーに数式エディタボタンを作りたいのですが、分かる方お願いします
>>659 早々のレス有難う御座います
出来ました
661 :
名無しさん@そうだ選挙にいこう :2006/12/22(金) 15:07:50
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 excel 区切り 読み込み 半角スペース区切りのtxtファイルを読み込むにはどのようにすればいいのでしょうか? 普通に開くと1列目にすべて表示されてしまいます。 txtファイルをエディタで開いてカンマに置換する方法以外の方法を教えてください。
テキスト ファイル ウィザード or 区切り位置
区切り位置→区切り文字(スペース)にチェック
664 :
661 :2006/12/22(金) 15:40:20
ていうかググれよ
【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 1つのセルに複数の数値がスペース区切りで入っています。 "3 12 6 8" この数値の個数(この場合4個)と合計(この場合29)を計算するにはどうしたらいいでしょうか? ="="&SUBSTITUTE(A1," ","+") ="=SUM({"&SUBSTITUTE(A1," ",",")&"})" これの結果が数式として扱われてくれれば、と思ったのですがだめでした。
>>666 A列にもとデータが入っている場合。
A列を選択→データ→区切り位置→カンマやタブ〜→その他にチェックして
半角スペース入力→完了→A列に列挿入→挿入したA列に、
・(個数) =COUNTA(B1:Z1)
・(合計) =SUM(B1:Z1)
>>666 >>667 の方法で複数のセルに分解するか
関数でスペースごとに文字を切り出して数値に変換してから
足してイけ
文字列を数式にする関数なんてないからな
質問です。 ボタンマクロを作りました。 で,ここからが聞きたいところなんですが, そのボタンは,一度クリックすればその通り動きますが, それ以上クリックすると おかしな事になってスクリプトエラーが発生します。 一回しか押せないボタンマクロを作るにはどうしたらよいでせうか?
>>669 最後の一行のせいで、分からなくなったが、
エラーが出るのを直したいんじゃなくて、
「一回押したら、二回目から押しても動作しない」というのを実現したい
って事でおk?
ワークシート上に、何かフラグになるようなものを置いておくってのが簡単な所だな。
コードの頭で、そのフラグがONなら実行せず終了というのを入れる。
例えば、通常触らない端の方のセルに白文字で、「実行前」とか書いておいて、
コード中にそのセルを「実行済」に変更するように記述するだけ。
>>669 ボタンのEnableプロパティをfalseにするとか
672 :
669 :2006/12/23(土) 02:31:18
>>670-671 ヒントありがとうございました。なるほど。
後は自分で調べてやって見ます。
673 :
名無しさん@そうだ選挙にいこう :2006/12/23(土) 13:14:41
一度マクロを使おうとしたのですが うまくいかないのでにマクロを消したのですが、 ブックを開くたびにこのブックはマクロが含まれてます とでます。 どしたらこれがでなくなりますか? 環境はXPの2003です。
674 :
666 :2006/12/23(土) 13:18:25
>>667 「区切り位置」の機能を知りませんでした。
ありがとうございます。
>>668 > 文字列を数式にする関数なんてないからな
そう!これを望んでいたのですが。
ないのですか・・・
> 関数でスペースごとに文字を切り出して数値に変換してから
> 足してイけ
B1: =FIND(" ",A1)
C1: =LEFT(A1,B1-1)
D1: =RIGHT(A1,LEN(A1)-B1)
E1: =FIND(" ",D1) →以下、繰り返し
と、いうことでしょうか?
>>673 過去ログのFAQに載ってる
>>674 > と、いうことでしょうか?
それでいいじゃん。
もう少し上手い式を組んだ方が良いが。
676 :
名無しさん@そうだ選挙にいこう :2006/12/23(土) 16:25:19
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 ? 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 エクセル 大量 データ 入力 web上に掲載されている(有価証券報告書の数値など)大量の数字を エクセル上にそっくりそのまま貼り付けることって出来ないんでしょうか。 基本的な操作ですみません・・
677 :
名無しさん@そうだ選挙にいこう :2006/12/23(土) 16:52:59
分布図を作っています 原点からの距離が100以内に収まっているかを一目で分かるようにグラフ内に半径100の円を書きたいんですがXY座標上にどういう変数で円を書けばいいのでしょうか? オートシェイブで円を作って上にのっけてみたのですが印刷したら微妙にずれてたり楕円になってたりできれいにかけないのです もう一点 20万行ぐらいのTxtファイルをExelで読ませるために手作業で1万行ごとに区切ってSheetごとに貼り付けしています これをもっと楽にする方法はないでしょうか?
XBRLに移行するまで手入力だろうね。
>>677 オートシェイプの書式設定→サイズ(高さ・幅)
>>677 ヒント:円の方程式
SQRT(x*x+y*y)=1
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 VBAの速度 自作PenM1.8 HDD3台 メモリ1G ブックのサイズ約30M、シート数100。シートの中身数千の時系列データ。 状況を見ながらシート数を増やす予定。 VBAを使用して直接セルに計算式を入力していますが、1シート5秒ぐらいかかります。 どの部分にお金をかければ時間を短縮できますか? 1、CPUをかえる 2、HDDをRAID0にする 3、I-RAMとういうのを使ってみる。 よろしくお願いします。
>>682 そのむちゃくちゃなシステムを改良するほうが先かと。
アプリケーションブックどデータブックを分けるとか、コードを見直すとか。
>>682 1つのブックに収めてる時点で救いようが無いことに気付け
>>683 ,684
コードの見直しは何度もしています。まだまだ改善の余地はありますが。
10秒以上かかっていたのを半分以下にまで見直しました。
1シートの時系列に直接計算結果を書き出し(結果を確認するために)。
最後にまとめて1シートにその100の結果を表示するだけなので、
ブックを分ける場合は、結果シートとデータブックにわけるのがいいのですか?
>>682 VBA使ってるなら、シートに数式埋めなくてもできるんじゃないの?
687 :
682 :2006/12/23(土) 20:07:14
>>686 間違ってました。正しくはVBAで計算して、計算結果のみをデータシートに書き込んでいます。
数式は結果シートに2,3箇所使っているだけです。あとは、VBAで計算。
>>682 ,685
俺もコードや構成を最適化した方がいいと思うけどな。
適当なロダにブックをうpしてみそ。シートはサンプルとして1つだけあればいいし
流出しちゃ不味いデータならシートの内容は適当に伏せてもいいからさ。
どうあってもハード変えたいなら、CPUとメモリだが、帯域の狭いPenMじゃ大きな差は出ないから、
事実上M/Bも含めての交換になる。オススメはAth64FX57とDDR2-533以上のメモリを2GB以上。
うちのサブPCが同じような構成だ。(Ath64FX57 DDR2-677 4GB)
デュアルコアが活きない処理なら、デュアルコア人気で価格が落ちてる高性能シングルコアが狙い目。
金があるならもっと上を狙ってもいいけどな。Opteron256x2とDDR2 800を12GB積んで、
iRAMなんて低速RAM-DISKではなく高速なRAM-DISK作るとか。
大量のセルに入力する時は、 繰り返し構文使うより 配列変数使った方がいいのは知ってる? Range(Cells(1, 1), Cells(r, c)) = D ↑D が配列変数
そのくらいは当然やってるだろ。
>>685 計算結果表示(アプリ?)で一つ。
データは日付とか用途とか処理しやすい分類で複数。
同じようなスペックのPC使ってるけど3列1万行を他のブックから読み込んで
1列ずつシートに書き込んでも5秒はかからんよ。
たぶん計算過程の贅肉がネックなんだろうと思う。
692 :
682 :2006/12/23(土) 20:43:22
>>688 、689
ブックをUPするのはできますが、コードはまずいです。
シートは日足データ10年分で、約5000ぐらい。
繰り返しは、計算上、数箇所で使っています。
後ろに戻って判定してを数回繰り返しますので。
あと、100シートにわたるときの繰り返し。
別の部分のコードで、アップ用にブックを作ってます。
>>685 メインの計算が複雑なんです。
過去100日に戻っていろいろ計算するので配列を使っても、4秒ぐらいはかかります。
シートが少なければ問題ないのですが。
693 :
名無しさん@そうだ選挙にいこう :2006/12/23(土) 20:51:10
【1 OSの種類 .】 XPPro 【2 Excelのバージョン 】 xcel2003 【3 VBAが使えるか .】 ほんの少し 【4 VBAでの回答の可否】 初心者レベルなら 【5 検索キーワード 】 マクロ ピボットテーブル 「オブジェクト変数またはWithブロック変数が設定されていません」 以下の処理をマクロで記録して実行しようとしたら ・開いているシートのA列に会員番号が並んでいる。重複あり。 ・ピボットテーブルによって重複しないものだけ抜き出し別のシートにテーブルを作る。 こういうエラーが出ました。 ・「オブジェクト変数またはWithブロック変数が設定されていません」 ソースは以下になります。 Sub ユニーク会員抽出() Columns("A:A").Select ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ rng).CreatePivotTable TableDestination:="", _ TableName:="ピボットテーブル1", DefaultVersion:=xlPivotTableVersion10 ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1) ActiveSheet.Cells(3, 1).Select With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("会員番号") .Orientation = xlRowField .Position = 1 Set rng = ThisWorkbook.Worksheets("sheet1").Range("A$:A$").CurrentRegion End With End Sub Set rngの後がNGな気がしますが、どう直したらいいのやら。。どなたかお力を・・・
>>692 > 別の部分のコードで、アップ用にブックを作ってます。
コードはそのものじゃないと意味無いよ。
出せないならあとは自分で解決しろ。
初カキコです。 プライベートでパチンコ記録簿〜なんてつけてみようと思ってるのだが、 1,シート「入力」に日付、支出、収入、差額(収入ー支出)、場所 とそれぞれ入力する 2,シート「月間」のB1に年、B2に月のデータをいれる。(仮にB1は「2006」、B2は「12」とする) んで、ここからなんだが シート月間のB5に2006年12月分だけの差額の合計を表示されるようにできないもんかな?
>>693 デバッグしろ
>>695 いきなり結果を求めようとせずに、段階を追え
「2006年12月分だけの差額の合計」を求めるには何のデータが必要なのか
そのデータを取得するにはどうすればいいのかってね
順を追えば中学生でも解決させられる問題だ
>>696 サンクス
SUBTOTAL関数とか使ったらオートフィルタ後の計算結果が反映されるんだな。
調べたら普通に出てきたぜ。これならややこしいことせずなんとかできそうだ。
698 :
682 :2006/12/23(土) 21:35:17
>>694 どちらも100ぐらいのシートの処理なので同じ問題点を含んでいます。
このコードは、計算し終わったあとの、特定の日付を抜き出して一覧にします。
90シートで2秒いくつ・・・。色を別subに持っていけばもう少し短縮可能か。
自分で解決するしかないかな。
コードを見直しつつ、Ath64FX57あたりを調べてみるよ
pass:682682
ttp://www.vipper.org/vip406558.zip.html 改善の場所があったらお願いします。
699 :
名無しさん@そうだ選挙にいこう :2006/12/23(土) 21:46:28
693>696 デバッグしたら、 この3行が黄色になっていました。 で、rngの定義がヘンなのかと思ったわけです。 しかしどう解決したら分からず、という状態です。 ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ rng).CreatePivotTable TableDestination:="", _ TableName:="ピボットテーブル1", DefaultVersion:=xlPivotTableVersion10
>>698 つーか初歩の初歩も出来てねーじゃん。変数はちゃんと適した型で使えよ。
一番使用を避けるべきなVariant型ばかりだが、はっきり言ってVariant型が必要な部分は一つもないじゃん。
「Dim my_Year, my_Month As String」じゃmy_YearはVariant型になるし
カウンタに使う変数はIntegerで足りる桁数でもLongの方が速い。
Select、Selectionも不要なところで使いまくりだし、他でも無駄な処理が多すぎ。
はっきり言って修正する価値すら無いね。基礎を学んで一から書き直した方がいい。
>>701 できる大辞典EXCEL VBAを方絵に作ってきたのですが、まだまだ大幅に修正できるんですね。
変数のところから見直していきます。
自分で出来る限りのことはしてきたのですが、基本も出来ていなかったんですね。
後学のために、参考になる本かWEBを教えていただけないでしょうか。
基本を学んで1から書き直したいと思いますので。
>>682 OmegaChartなら自動売買検証、セオリー検証できるんだけどね。
Excelで全銘柄やるなんて暇人ですな。
>>702 「できる大辞典EXCEL VBA」は、俺もお世話になったが、この本には
Dim a, b, c As Integer
という宣言では a, b がVariant型になってしまうことも書かれているし、
Select、Selectionの事も書かれている。
他にもあの本で解説されているのに君が出来ていないことは多々ある。
きちんと読まない奴に、良い本やサイトを紹介したって無意味。
同じ情報を得られる環境にいながら、お前より上に行く人間を見上げて
一生底辺で這い蹲ってればいい。
>>704 忌憚のないご意見ありがとうございます。
一人で物事を進めていると進む道がずれてしまうので、
今回の件で勉強させていただきました。
いいですね底辺。これでようやく足がついた。
一歩ずつ底辺から歩いてきます。
基礎からやったら何日かかるんだよ。 つめてーやつらだな。w
682君よ、706が完璧なコードを書いてくれるそうだ。 しばし待たれよ。
708 :
名無しさん@そうだ選挙にいこう :2006/12/23(土) 22:53:49
709 :
682 :2006/12/23(土) 22:54:43
実際、おだてあげられるより全然いいよ。
リアルじゃここまできつくいわれないしw
希望が見えれば、あとは時間がかかっても
そこに向かって歩いていくだけさ。
>>707 わかりました。しばし待ちます
710 :
706 :2006/12/23(土) 22:57:35
時間があまりないんでごめんね。 でも Range("A20:k" & my_Row_A).Select Selection.Interior.ColorIndex = xlNone '-4142 ↓ Range("A20:k" & my_Row_A).Interior.ColorIndex = xlNone '-4142 の方がいいよん。 折角うpしたんだから、みんなも協力してやれよ。 特にうpすれと言ったやつ。
>>706 さん
あなたはとても暖かい人ですね
尊敬します
>>710 それ、既に指摘済みw
つーか、まさかそれで終わらないよね。
たいそうなプログラムを組めって言ってるわけでもないし
そんなに時間かかるものでもないんだから。
俺は つめてーやつ なので協力しないがな。
>>710 ☆ チン
☆ チン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽ ___\(\・∀・)< コードまだー?
\_/⊂ ⊂_)_ \_______
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄/|
|  ̄  ̄ ̄ ̄ ̄ ̄ ̄:| :|
| .|/
714 :
名無しさん@そうだ選挙にいこう :2006/12/23(土) 23:09:18
715 :
711 :2006/12/23(土) 23:14:49
706は今は時間無いようだから、きっと明日明後日には全コード書いてくれるよ。 師走だろうとクリスマスだろうと、10分やそこらの時間くらい取れるだろうから。
717 :
706 :2006/12/23(土) 23:33:20
これだけコードがかければなかなかだと思うよ。 みんな馬鹿にしてるようだけど、きっとみんなよくわかってないんだと思うよ。 だからうpしてから、指摘してくれるレスほとんどなくなったんだと思うよ。 がんばってね。 あとシートをセレクトせずに、 kd.Select Range("A" & 20 + ii & ":k" & 20 + ii).Select Selection.Interior.ColorIndex = 27 ↓ kd.Range("A" & 20 + ii & ":k" & 20 + ii).Interior.ColorIndex = 27 とこんな感じにした方がはやくなると思うよ。 おれは明日明後日は忙しいので期待しないでね。w では〜
だから「セレクトせず」は既出だってばてばw つーか、口先だけの無知故に対応出来ないのを 忙しいという言い訳で逃げたね。 > よくわかってないんだと思うよ。 と言うなら、706と違って既出じゃない指摘をしてやろう。 検証D_基本の最初の二重ループ、LTrim(kd.Cells(ss, 2))の部分は 二つ目のループ内では固定値なので、毎回Cellsで取得するのではなく 一つ目のループ内で変数に値を入れて二つ目のループ内ではその変数を使った方が良い。 まぁ実を言うとこの部分は2重ループさせずに処理する方が速いんだけどね。
つうか、素直にサイト紹介してやればいいじゃん モーグとかお仕事とか使えるサイトいくつか有るのに 罵詈雑言を並べる意味がわからん 次の質問どうぞ↓
682は今頃OmegaChartをDLして色々弄くってると思うよ。
>>719 で、なんで君はそれを682当てで紹介しないの?
>>720 今はそうかもしれないが、結局は使わないと思うよ。
723 :
682 :2006/12/24(日) 00:25:30
>>717 、718
ご指摘ありがとうございます。
Selectionの件なのですが、
当環境では一つにまとめたほうが2秒コンマ1の誤差。
そのままの方が1.3−1.6の間で、結果まとめるよりも早くなりました。
LTrim(kd.Cells(ss, 2))の件ですが、
>一つ目のループ内で変数に値を入れて二つ目のループ内ではその変数を使った方が良い。
0.5秒ぐらい短縮しました。こんなに違うんですね。結果、2秒から、1.1秒ぐらいまで短縮できました。
>719
ぐぐったらで見つけました。
>720
OmegaChartでは、作られていない計算をしているので使用してません。
変数の変更。ループ処理の見直し。これだけでも、数秒から数十秒の短縮が出来ました。
コード全体の見直す必要があるので、ひとつづつ潰していけばかなり早くなる。
これ以上は、邪魔になりますので名無しに戻ります。みなさん、ありがとうございました。
724 :
名無しさん@そうだ選挙にいこう :2006/12/24(日) 02:57:39
エクセルで正規分布などを描画することってできないんですか? mathematicaなどを使わないとダメなんでしょうか。
できますよ
726 :
名無しさん@そうだ選挙にいこう :2006/12/24(日) 03:30:01
アホ解答乙www
727 :
名無しさん@そうだ選挙にいこう :2006/12/24(日) 07:20:03
693は異動しました
つうか、チンプンカンプンな俺はずっと黙ってROMってたんだが おまいらすごいですね。 どんな職種なのかスゲー気になる。プログラマとかの設計関係?
730 :
名無しさん@そうだ選挙にいこう :2006/12/24(日) 15:47:25
( ´,_ゝ`)プッ
731 :
名無しさん@そうだ選挙にいこう :2006/12/24(日) 17:11:45
教えてください!! VBAを使って、インターネットから、今日の日付を取得したいのですが、 どのようにしたら良いでしょうか?? コンピュータの日付では設定が間違っていたら違う日付を取得してしまうので、 WEB上のどこかのサイトから日付を取得したいです。 よろしくお願いします。
>>731 Excel関係ない
「NTP」で勝手に調べろ
733 :
名無しさん@そうだ選挙にいこう :2006/12/24(日) 17:37:14
>>732 すいません・・・。
そのNTPというのを使って、セルの「A1」に現在時刻を取得したいのですが、
どうすればよいのでしょうか?
どうしても必要です。教えてくださいm(_ _)m
734 :
名無しさん@そうだ選挙にいこう :2006/12/24(日) 17:48:32
735 :
名無しさん@そうだ選挙にいこう :2006/12/24(日) 18:34:38
だったら最初からそう言えアホwww 技術馬鹿は本当にアホさ加減が突き抜けてるwwwwwwww
語尾のwの数 = アホさ加減のバロメーター
737 :
名無しさん@そうだ選挙にいこう :2006/12/24(日) 18:46:06
>>734 ありがとうございます。
しかし、これを読まないといけないわけですか・・・。
ユーザーが意図的に日付を変えるのを防ぐために
ネットから現在日付をセルに取得したいのです。
簡単な方法はないかな〜。
>>737 どっかのCGIで時刻表示してるんじゃないだろうか
739 :
名無しさん@そうだ選挙にいこう :2006/12/24(日) 18:49:11
確率分布を描く方法ってないのでしょうか。
ありますよ
>>737 だから「ネットから現在日付を取得する」はExcel全く関係ないでしょ。
「取得した日時をセルに代入する」の部分ならこのスレで教えるけど
取得する部分は完全にスレ違いだ。
>>737 どっかのサイトで表示されている時刻(例えばヤフーファイナンスに出ているもの どこでも良いんだけどね)とか拾ってくるとか
桜時計入れとけ
744 :
737 :2006/12/24(日) 18:59:11
>>742 その方法を教えてください!!!!
お願いします!!!
今日、一人寂しくで2chやってる私に、クリスマスプレゼントをください!
>>744 どうぞ、クリスマスプレゼントです。
つ VBA
748 :
737 :2006/12/24(日) 19:20:12
>>746 サンタさん、ありがとう!!
参考にします!
749 :
名無しさん@そうだ選挙にいこう :2006/12/24(日) 19:45:33
>>692 計算時間より、
1) シートからのデータ読み込み
2) シートへのデータ書き込み
の部分で時間がかかってるんでないの?
配列で一気にデータを読み込み、計算したら、配列で一気にデータ書き込み
が基本ですよ。あと、シートには計算式など書いてはいかんよ。
データ量が多い時にはね。
>>750 エクセルの配列はすごいですね。
>配列で一気にデータを読み込み、計算したら、配列で一気にデータ書き込み
このとおりに(読み書きのみの)コードを書いたら、各90シート1列で読みは約4秒。書き約100秒。
それと同時にメモリ使用量が大変なことに。列を増やすと1Gだとメモリが足りない。
配列は使用していましたが毎回セルに読み書きをしていたので、
ご指摘のとおり、読み書きに時間がかかっているようです。
自分がいかに無知だということを勉強させていただきました。ありがとうございます。
すご、アイディアが次々に浮かんでくる。
>>751 勉強するときさぁ、お金に余裕があれば手元に2冊置いたほうが良いよ。
1処理でも違う書き方してるの読めば、どういうケースでどういう書き方したら
一番効率が良いか発想しやすいよ。
まあ、VBAのサイトでも十分内容は濃いけどね。
>>751 ん?1Gで足りないということはないと思うけど。
ちゃんと配列使いまわししてる?
>>752 なるほど。参考にさせていただきます。
>>753 明日大阪のジュンク堂に行くので、本を探してきます。
>>754 ちゃんと考えずに、あたりを決めてコードを書いたのでメモリ不足になりました。
改めて書いたらなんとかなりそうです。
セルの読み書きのコードを書いてみました。 Sub test2() Dim i As Long Dim ab(65536, 3) As Variant my_StartTime = Timer Set d = Sheets("1332") Set t = Sheets("TEST") '下端検索 my_Row_d = d.Range("d65536").End(xlUp).Row For i = 1 To my_Row_d '65536 ab(i, 0) = d.Cells(i, 4).Value ab(i, 1) = d.Cells(i, 5).Value ab(i, 2) = d.Cells(i, 6).Value Next i For i = 1 To my_Row_d t.Cells(i, 1).Value = ab(i, 0) t.Cells(i, 2).Value = ab(i, 1) t.Cells(i, 3).Value = ab(i, 2) Next i Debug.Print Timer - my_StartTime End Sub
>>756 752さんの紹介サイト見た方がいいよ。
配列変数はどかんといかないと。
>>756 あと、動的配列にするといいかも。
こんな感じで。
Dim ab() As Variant ' Longとかの方がなお良し
my_Row_d = d.Range("d65536").End(xlUp).Row
ReDim ab(my_Row_d, 3)
>>757 紹介サイトの「セルを配列に入れる」のサンプルを実行してみました。
簡単にいって、発想が違います。
>>758 データーに日付があるので、 Variantしかできませんでした。
VBAでコードの書き方でここまで結果がかわるとは思っていませんでした。
シートにひとつでも計算式が入ると、ガクンと処理速度が落ちるのも勉強になりました。
シートの読み書きと計算式の処理がVBAで大切なんですね。
ありがとうございました。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 excel 貼り付け ハイパーリンク htmlなどのリンクの張ってあるテキスト部分をコピー→excelのセルに貼り付け をすると勝手にハイパーリンクされてしまいます。 セルを右クリック→形式を選択して貼り付け→テキストを選べばリンクされないのですが、 いちいち選択するのは面倒なのでCtrl+Vで貼り付けをしたいのですが、どうすればいいでしょうか ちなみにツール→オートコレクトのオプション→入力フォーマット→ インターネットとネットワークのアドレスをハイパーリンクに変更するのチェックを はずしても駄目でした。
762 :
760 :2006/12/25(月) 09:09:37
>>761 同じセルに何度も貼り付けするので、それだと無理そうです。
>>760 クリップボード拡張ソフトの類を使え。
Ctrl+Shift+Vではhtmlもリッチテキストもプレーンテキスト形式で貼り付けとか。
どうしてもCtrl+Vがいいなら、こっちを拡張貼り付けにして、Ctrl+Shift+Vを通常貼付にしても良いし。
VBA使えばExcel自身でも出来るけど、専用ツールあるのにコード書く気にならん。
因みに、クリップボード拡張ソフトに関してはいろいろあるしスレ違いなので自分で気に入るの見つけてね。
>>760 Private Sub Worksheet_Change(ByVal Target As Range)
Sheets("Sheet1").Range("A1:IV65536").Hyperlinks.Delete
End Sub
765 :
760 :2006/12/25(月) 10:20:09
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 VBA gz 解凍 VBAでgzファイルを解凍し読込む方法 C#、VBならサンプルがあるようですがVBAでは・・・
>>766 VB6の方法がそのまま使えるし、Excel関係ないのでスレ違い。
>>766 VBのサンプルでVBAで出来ない所があったって事?
その箇所を指し示してよ
769 :
766 :2006/12/25(月) 14:16:21
gzで圧縮されたバイナリファイルをExcelに取り込みたいのですが・・・ スレ違いなの? バイナリデータからはVBAで変換出来たのですが 解凍もVBAで、出来ないですか?
>>769 だからVBと同様で出来るって。
取り込み部分出来たんなら、あとは分かるんだろ?
Excelで直接取り込める形式にするところまではスレ違い。 Excelで直接取り込める形式のものを取り込む部分はスレ違いじゃない。 残念ながら君は、スレ違いじゃない部分は解決していて、 スレ違いな部分が解決してないようだね。VBAでやるべきことじゃないが、 出来ない訳じゃないから頑張ってくれ。初心者なら適したツールに頼れ、 専用ツールを使わずに、無理してでも解凍部分を含めて自動化したいなら、 それに応じたスキルを身に付けろってことで。
>>772 そういうツッコミはきちんとした回答をした人が言わないと説得力無いよ。
>>2 ▼━質問時の注意・決まり事 ━━━━━━━━━━━━━━━━━
に接触する物は、解る解らないに関わらず、指摘する権利が全ての人にある
今回のは・7接触
775 :
名無しさん@そうだ選挙にいこう :2006/12/25(月) 14:48:49
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 エクセル 重複 カウント 1/1 りんご 1/1 りんご 1/1 みかん 1/2 りんご 1/2 なし 1/2 みかん 1/2 みかん 1/3 りんご 1/3 なし 上記のようなセルがあり1/1が2種類、1/2が3種類、1/3が2種類 というのを合計した7という数をだす方法を教えていただけませんか? よろしくおねがいいたします。
>>775 その例通りなら、IF関数で上下を比較して、違いがある場合に+1していけばいいじゃん。
IF関数の使い方はヘルプ参照。ついでにAND関数も必要だから。
質問です。 vbaでファイルを保存する際のファイル名を、ファイル参照ダイアログを使用して取得しようとしています。 str_filename = "加工されたstring" & "(" & Format(Year(Date), "00") & Format(Month(Date), "00") & Format(Day(Date), "00") & ").sql" str_filename = Application.GetSaveAsFilename(str_filename, fileFilter:="すべてのファイル (*.*),*.*") 上記のようにすると、ダイアログのデフォルトのファイル名がダブルクォーテーションつきで 「"加工されたstring20061225.sql"」となってしまうのですが、 この原因がわかる方いらっしゃいますでしょうか。。 実現したいのは、ダブルクォーテーション無しで 「加工されたstring20061225.sql」とデフォルト指定したいです。
778 :
777 :2006/12/25(月) 15:11:18
テンプレ見落としてました。。 テンプレのみ再掲させていただきます。 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 「GetSaveAsFilename ダブルクォーテーション」等
>>772 俺は「わからない人」じゃないけど、何か?
>>777-778 それで実際に 保存 を押してみな。
戻り値はダブルクォーテーション無しになってるから。
それでも嫌ならWin32APIのGetSaveFileNameで。
Win32APIはスレ違いなので「"Declare Function GetSaveFileName"」とかでググれ。
780 :
777 :2006/12/25(月) 15:32:34
>>779 ありがとうございます。
問題なく保存できるのはもちろん確認済みなんですが、
非常に気持ち悪かったので。。
APIってやや環境依存ですよね。
とりあえず今回はここまでかー。
ありがとうございました!
>>775 数式なんかいらないよ。
全行のC列に1を振って、3行含めてピボットテーブル。
A、Bが行で、Cがデータ(合計)ね。
ピボットテーブル上で合計の行を消せば、全てユニークになってるハズ。
ピボットテーブルの行数マイナス3が答え。
(マイナスしたのは、ヘッダ2行と総計行)
>>780 > APIってやや環境依存ですよね。
別に。依存と言ってもGetSaveFileNameの場合
完璧な対処法が確定してるから、実用上は何の問題もない。
766君よ、779が完璧なコードを書いてくれるそうだ。 しばし待たれよ。
>>783 横から申し訳ないが、「いい加減にしろ」。
開いたらビックリするようなマクロのコードを教えてください。ウイルス意外で。
788 :
名無しさん@そうだ選挙にいこう :2006/12/25(月) 17:30:57
(あいう) (あいうえ) (あいうえお) というデータからカッコの中の文字列だけを抽出させたいんですが、 教えてください。
>>787 Sub Auto_Open()
Do Until MsgBox("ビックリしましたか?", vbYesNo) = vbYes: Loop
End Sub
>>788 文字列操作関数
または可能なら括弧を表示形式で付加しておくとか
>>788 関数なんかいらないよ。
編集→置換→検索文字列「(」、置換後文字列「」(←空白ね)
「)」も同様。
791 :
名無しさん@そうだ選挙にいこう :2006/12/25(月) 19:07:57
>>790 回答感謝します。
でもデータの配置の都合上、関数が使いたいんです。
>788 カッコを無視するだけなら =SUBSTITUTE(SUBSTITUTE(D3,"(",""),")","") カッコで閉じられた中の文字列だけ抜き出すのは 関数では チョト 大変。
>>794 R27C4ってのは、
R→Row(行)27
C→Column(列)4
って事で、セルD27の事。
R1C1:R27C4は、「A1:D27」ってことだな。
画像では9行目までで切れているけど、27行目まであるって事。
797 :
名無しさん@そうだ選挙にいこう :2006/12/25(月) 20:50:50
>>793 教えていただいたものだと、上手くいきません。
やっぱり簡単じゃないですよね。
LEFTかMIDとFINDあたりの組合せになるかと思ってるんですが・・・。
>>797 データの条件がよくわからんが、例えばこんなのでどう?
=MID(A1,FIND("(",A1)+1,FIND(")",A1)-FIND("(",A1)-1)
>>797 FINDはいらない。代わりにLEN。
LENで文字列の長さが分かるので、それから取り除く括弧の分、
前後から「-1」したものが答え。
800 :
名無しさん@そうだ選挙にいこう :2006/12/25(月) 21:03:41
>>788 ,
>>797 そんな感じ、MIDとLENの組み合わせだよ
MIDで2文字目から文字数=「LEN−2」とすればいい
801 :
798 :2006/12/25(月) 21:12:02
802 :
788 :2006/12/25(月) 21:22:52
803 :
788 :2006/12/25(月) 22:12:37
おかげさまで出来ましたが、こんなもんでいいですか? =MID(A1,2,LEN(A1)-2)
すみません質問です。 セルの先頭に特定の文字列を足す方法ってありますか? 例えば AAA BBB CCC って感じである先頭に1って文字列を足して 1AAA 1BBB 1CCC って感じにしたいのです。 数が多いので一個一個手動っていうのはつらいのでやり方があれば教えてください。 よろしくお願いします。
>>805 表示と印刷するだけのみてくれでいいなら セルの表示形式 で "1"@ を設定すればいい
それを関数やVBAで弄りたいなら横のセルに ="1"&A1 など作れ
807 :
名無しさん@そうだ選挙にいこう :2006/12/25(月) 23:27:16
>>805 検索と置換を使う
検索文字列 ^\n
置換文字列 1
正規表現
794>795 ありがとうございました! 実は、A列全部を選んでピボットテーブルにするマクロを作っているのですが、 実行すると下の3行でストップします。 エラーメッセージは「このコマンドにはデータソースが2行以上必要です」。 教えていただいた考え方にのっとりますと、C1ということはA列全体を選んでは居ると思うので、 なぜこのエラーメッセージが出てしまうのか、と疑問になっています。 またお分かりになる方、ご教授お願いします。 ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ "'20061001-20061121'!C1").CreatePivotTable TableDestination:="", TableName _ :="ピボットテーブル1", DefaultVersion:=xlPivotTableVersion10
>>806 ありがとうございました
出来ましたがAAAが数字だとちゃんと出来ません
一応文字列に変換はしたのですが。。。
何が原因でしょうか?
>>807 最初はそれも考えたのですが
AAAの部分が数字の場合もあるのでそうすると他の数字まで
変わってしまう場合があるのでやめました。
811 :
名無しさん@そうだ選挙にいこう :2006/12/25(月) 23:52:15
>>809 表示形式を
1#;"1"@
とする
意味は
「セルの中身が数字の場合」
頭に1を付けて、残りの数字(#が変数)を表示する
(セミコロンは条件の区切りを意味する)
「セルの中身が文字の場合」
頭に1を付けて残りの文字を(@が変数)を表示する
>>811 わざわざありがとうございます。
後々の為にもそっちも覚えておきます。
回答してくださった皆様本当にありがとうございました。
814 :
名無しさん@そうだ選挙にいこう :2006/12/26(火) 00:21:28
どうやってエクセルで加算のみ可能の8桁の2進数計算機を表現するの? 誰かヘルプ!
>>814 例えば、
=DEC2BIN → 10進数を2進数に変換
=BIN2DEC → 2進数を10進数に変換
というワークシート関数がある。
加算しか出来なくするのどうのという部分は、自分で煮詰めてから
仕様決めて、VBAでどうぞ。
どうやってそんな漠然とした質問で有効な回答ができるの?
>>814 ヘルプ!
818 :
814 :2006/12/26(火) 00:39:09
すいません。 大学の課題で出たんですけどチンプンカンプンなんです(><)
また課題の丸投げか。 さすがに課題は自分でやれ。
ふむ、だいたい習ってない事や、ネットで調べられない事を
課題に出すはずがないから、おおかた授業さぼってたとか
そんなオチだろう。
>>816 の関数で適当に作って出せ。
821 :
814 :2006/12/26(火) 00:57:15
今日日、高校生でもExcelぐらい使えるぞ・・・
ちょっとお尋ね申すでござる。 ExcelでVBAを使って完璧なシステムを作るということは普通しないですよね? 入力された値のエラーチェックするだけでも大変だったし、 シートの保護やらブックの保護やら、シートを隠して、プロジェクトにパスワードをかけて、 その他色々エラーチェックをかけて、変な操作をしてもシステムが壊れないように 作ったんですけど、大変でした。 変な操作をしたときの補償はしません、ということならそんなに大変じゃなかったのですが。 どうなんでしょうか。
827 :
名無しさん@そうだ選挙にいこう :2006/12/26(火) 10:59:38
65536行以上のデータでグラフを作成したいのですが、 65536行までしか処理できないのでしょうか?
>>827 2007なら100万行くらい使えるよ。
830 :
827 :2006/12/26(火) 11:23:57
>>828-829 ありがとうございます。
やはり出来ないですが・・・残念
XとYの簡単な折れ線グラフなのですが、
データ数が500万行あるんで・・・
>>830 データベース側で100行ごとに平均取ったら。
832 :
名無しさん@そうだ選挙にいこう :2006/12/26(火) 11:33:30
>>827 何の工夫も無くただ「データ並べちゃえ」じゃ、
グラフにする以前の話だな。
グラフで何をしようとしてるのかよく考えれば、
やり様があるんじゃないか。
833 :
827 :2006/12/26(火) 11:46:57
>>831-832 平均等のデータを加工出来れば良いのですが、
生データでのグラフということなので、悩み中です。
600dpiのプリンタでA1用紙横一杯にプリントできるのが2万ドット。 500万本も折れ線を書くというのが、いかに馬鹿げているか分るだろ?
836 :
名無しさん@そうだ選挙にいこう :2006/12/26(火) 12:18:14
>>833 5万行ぐらいでグラフを書いて100枚貼り合わせる。
アホのエクセラーが集まるスレはここですか?
つーか、Excelのグラフは1系列あたり32,000のデータしか設定出来ないハズだよ。 まず、んな事しないだろうから豆知識だけどね。 ↓次の質問ドゾ
気持ちよいオナニーはどうすればよいですか?
スルー
汁?
842 :
名無しさん@そうだ選挙にいこう :2006/12/26(火) 13:20:01
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 重複チェック エクセル エクセルに棚卸しデータを打ち込んでるんですが 同じ品が何回も数えられてたりするので 重複してる品名チェックしたいんですが 何か良い方法は無いでしょうか? よろしくお願いします。
>>842 A列に商品コードがあるとして、B1に、「=COUNTIF(A:A,A1)」、
B1に記入した式をB列全体にコピー。
これで1以外が出た所が重複なのでオートフィルタで。
ただ、商品コードのような、何かユニークなキーが無いとダメ。
「みかん」と「ミカン」と「ミカン」は全部別物として計算される。
>>842 検索キーワードに「重複チェック エクセル」を使ったなら出てくるはずだけど
COUNTIFなどではだめってことでしょうか?
入力時にチェック? それとも 入力済みデータに対して重複のチェック? さぁ、どっち
んなのどっちでもCOUNTIFで対応出来るだろうと。
【5 検索キーワード 】 を、勘違いしている奴が多いんじゃね? 自分の質問に対して、後で同じ質問する奴に対する スレ内検索キーワードみたいに使われてる希ガス。 これって、Googleやヘルプでこのキーワードで検索したけどダメでした、って所だろ?
>>848 >これって、Googleやヘルプでこのキーワードで検索したけどダメでした、って所だろ?
正解。
見ると、適当にキーワードだけ書いてる奴多いな。
テンプレは参考なんだからどうでもいいんだよ。 【5】は自分で何も調べずに、いきなり聞いてくるヤツの予防ぐらいに 考えとけばいいんじゃないか
それじゃ何の為のテンプレだよ。
>>842 なんて、そのまま検索すりゃ、キッチリ出るだろうし。
そりゃ、検索すんのマンドクセ('A`)、おまいら検索してくれよ。ってなるよ。
ま、できるだけって事で。 ↓次の質問ドゾ
853 :
名無しさん@そうだ選挙にいこう :2006/12/26(火) 14:27:56
↓次の質問ドゾ ↑これいらない
荒れ続けるより良いんじゃね?
855 :
775 :2006/12/26(火) 14:42:36
>776 同じ品物が必ず続きでくるとは限らないんですよ。 色々やってみたんですがどうもうまくいきません。 >781 取引先の請求書のフォーマットが隣のシートにあるので そことリンクさせる為できれば数式、関数をつかいたいのです。
856 :
名無しさん@そうだ選挙にいこう :2006/12/26(火) 14:56:13
すみません、秒を時間に直すにはどうしたらいいですか? 例えば、7943342(秒)をセルの書式設定でやると、を2日21時間34分となります(数字はでたらめ) 24時間を越えても28時間とか90時間○○分と表示させたいのですが。
よろしくお願いします。 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 セル 参照 行指定 データ用シート(A/B/C/D/E/・・・)(登録NO/会社名/郵便番号/住所/電話番号/・・・)があります。 電話帳シートに10行で1ページの取引先カード(老眼の父のためにA4サイズ1ページに1件の電話帳) を作る事を目標にしています。 電話帳シートのページの頭(A1,11,21・・・)に「=1+(ROW()-1)/10」を入れ連番(登録NO)としました。 電話帳シートの次の行(A2,12,22・・・)にデータ用の会社名を参照させたいのです。 文法を無視すると、A2=データ用!B1←この行数にA1の値を指定したら会社名が反映されるだろうと考えてます が記述法が分かりません。 根本的に何か間違っていれば、ご指摘お願いします。
858 :
856 :2006/12/26(火) 15:04:04
自己解決です。 表示形式で、[hh]としたら出来ました。 すみません。、、
859 :
名無しさん@そうだ選挙にいこう :2006/12/26(火) 15:30:11
>>855 =775
元データがA,B列にあるとして
C列に式 =A1&B1 を各行に設定
D列に式 =COUNTIF($C$1:C1,C1) を各行に設定
結果:D列の値「1」のみCOUNTIFで集計:=COUNTIF(D1:Dn,1)
バラバラにするとこんな流れ。
条件が列ごとに分かれてる場合、連結式で条件をつなげるのがポイント
>>857 サンプルがないので、いまいち良くわからんが
VLOOKUPとかでやれば?
>>857 読みづら杉wどうなりたいんだyo
こんな感じか?
----------------------------------------------------
シート名:【データ】
登録NO 会社名 郵便番号 住所 電話番号
1 梶掾搶、事 000-0000 東京都〜 00-0000-0000
2 梶「△商店 111-1111 神奈川県〜 11-1111-1111
---------------------------------------
シート名:【電話帳】
A B
1 登録No 1
2 会社名 =VLOOKUP($B$1,データ!A:E,2,0)
3 郵便番号 =VLOOKUP($B$1,データ!A:E,3,0)
---------------------------------------
電話帳シートのB1の数字を変えると、その下のデータが変わるイメージ。
表示するセルの配置は適当に変えて。
もし行列を入れ替えて貼り付けでOKだったらガッカリだな
【1 OSの種類 .】 Windows HPhome 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 エラー、文字列 検索 セル色付き1000行以上*2列+語数少ない文字列*数列のエクセルシートを 文字検索しようとすると、エラーになって勝手にファイルが閉じ、「報告します」の表示が出てしまいます。 色付きとか折り返して全体を表示するとかが重いのかなと、できるだけシンプルなシートにしてみたのですが、同じです。 解決策ご教示くださいませ よろしくお願いいたします
864 :
863 :2006/12/26(火) 16:23:07
追加です。 「すべて検索」だと100%上記の症状 「次を検索」だと、100%ではないが、大半が上記の症状です。
>>863 以前に同じような状況になった時、一箇所だけ数式の引数がおかしかった。
Ctrl+Gで数式を探して、数式の引数を全部見直して。
可能な限り簡素なものにすると良いかも。
>>863 壊れてんじゃね?
別ブックにコピペして作り直してみるとか。
訳ワカランOSを使っているからでは?
ありがとうございます。
>>866 作り直して、さらにデータを半分に分けてみたのですが、同じ状況でした。
>>865 数式として使っている「数式」のない文字列だけのデータですが
数式と誤認識されそうな数字や記号の列だけ消去してみました。
すべて検索はやっぱりだめで、次を検索は最初の1-2回だけできることがあり、
前より、ほんの少しいいかも、という感じになりました。
セルの色分けとかもクリアしたいんですが作業の都合上それが難しく・・・・
最悪、installしなおせば解決するんでしょうか
>>868 他のファイルで同様の状況にならないなら、Excelの再インスコは
意味を成さないかと。
1000行あるなら、200行ずつ5回に分けて、
新規ブックに値で貼り付け→検索してチェック→保存せず閉じる→…
というのを続けて、どの部分が悪いのかを探し出すのが、一番早いかも。
これで問題が出ないなら、全体を値で貼り、色は別途塗り直し。
頑張って。
>>869 どうもありがとう
小分けで、いけないところを見つけるんですね。
今晩、やってみます。
871 :
857 :2006/12/26(火) 17:11:47
872 :
名無しさん@そうだ選挙にいこう :2006/12/26(火) 21:50:46
どうか助けてください。 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 エクセル コマンド 消失 「編集」メニューにある、「リンクの設定」というコマンドを多用し、リンク先を 色々変えながら表を作成する ということをやっています。 メニューをいちいち開くのが億劫になってきたので、「ユーザー設定」にて 適当なツールバーにボタンを設置しようと考えました。 「ユーザー設定」ボックスが開いた状態で、「編集」メニューの「リンクの設定」の行 をつまんでツールバー上にドロップしようとしたのですが、誤って、 ツールバーではない何も無いスペースでマウスを離してしまったのです。 その結果、この「リンクの設定」というコマンドがどこにも存在しなくなってしまいました。 「ユーザー設定」ボックスの「コマンド」タブの中にはもともとこのコマンドは存在せず、 「オプション」タブの「初期状態に戻す」を実行しても、「ツールバー」タブの「リセット」を 実行しても元には戻りませんでした。 最終手段は、「アプリケーションの自動修復」しか無いのかな?とは思うのですが、 CD-ROMが手元に無いのですぐには試せない状況です。 この消えたコマンドを復活させるには、どうしたらよいのでしょうか? どなたかお知恵をお貸しください。お願いします。
>>872 ユーザ設定のリセット押す時、ちゃんと「ワークシートメニューバー」が
選択されていないと見た。
騙されたと思って、もっかいやってみな。
>>873 や、やったあ〜復活しましたよ!!即レスで解決できるとは…
本当に感謝です! ってかこんな項目初めて知りましたよ… orz
これで仕事の続きが出来ます ありがとうございました!!
823>824 ありがとうございました! 今日いろいろ読ませていただきました。 私はマクロを絶対参照で記録し、絶対参照で実行したいと思っています。 808の場合は、相対参照でマクロ記録して、実行するときは絶対参照になっていますよね。 以下2つの方法でマクロ記録したのですが・・・ ●記録終了ツールバーの右のボタン(相対参照ボタン)を押下させない状態でマクロ記録 ⇒グラフウィザードではちゃんと絶対参照($A:$A)になっているけど VBEで見えるソースは"C1" ●記録終了ツールバーの右のボタンを押下させて記録 ⇒グラフウィザードではちゃんと絶対参照(A:A)になっているけど VBEで見えるソースは"C1" な、なぜVBEだけが、、、あと一息だと思うんですけど。。 どなたか申し訳ありません、もう一息ヒントを授けてください。。
名前欄に自分が最初に質問した時のレス番書いて。
あと、文中でレス番号書くときは、番号の前に「>>」つけよう。
例:
>>808
絶対参照にしたいのであれば 単純に記録したVBAを書きかえれば済むのでは
>>875 記録するとR1C1形式になるが、引数SourceDataは、Rangeオブジェクトを
返せば良いので、「SourceData:=Range("Sheet1!$A:$A")」という風に指定
することも出来る。
あとは適当に好きに料理しれ。
879 :
名無しさん@そうだ選挙にいこう :2006/12/26(火) 23:07:39
EXCEL2002です。 VBAでグラフを複数作りシートAに貼り付けた直後に、 画面上に表示されていないグラフを画面スクロールして表示すると、 下記のエラーメッセージが表示されます。 このブックをそのままクローズ&オープンして、 シートAのグラフを画面スクロールして表示しても、 エラーメッセージは表示されません。 (グラフデータは別シートB、Cにあり、グラフはいずれの場合も 正しく表示されています) <エラーメッセージ> 数式に、無効な外部参照が含まれています。 パス、ブック、範囲名、またはセル参照が正しいかどうか確認し、 再度実行してみて下さい。 原因と対策を教えて下さい。
881 :
名無しさん@そうだ選挙にいこう :2006/12/27(水) 01:04:59
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 エクセル 折れ線グラフ 入れ替え 折れ線グラフで、通常作ると、縦軸に数字が来て、横軸に見出しが出る のですが、逆にしたいのです。縦軸に見出しが、横軸に数字がでるグラフ にしたいのですが、それは、可能でしょうか。 よろしくお願いします。<m(__)m>
>>881 可能です。検索キーワードを再考してください。
883 :
名無しさん@そうだ選挙にいこう :2006/12/27(水) 06:54:56
質問 Excel2002です。 A1に「1」 A2に「2」 ・・・ A1000に「1000」 とあったとして B1に「1000」 B2に「999」 ・・・ B1000に「1」 と書きたい(反転?させてコピーしたい)場合、簡単にできる方法はあるでしょうか
B列にデータをコピーしてB列だけ逆順に並び替えたら駄目なn?
885 :
883 :2006/12/27(水) 07:51:46
886 :
名無しさん@そうだ選挙にいこう :2006/12/27(水) 09:22:16
【1 OSの種類 .】 WindowsXP SP2 【2 Excelのバージョン 】 Excel 2002 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 vba Workbooks.Open close ----------------- 'strFilename1にはエクセルファイルのフルパスが入っています。 Dim xl As Object Set xl = CreateObject("Excel.application") xl.AutomationSecurity = msoAutomationSecurityLow xl.Workbooks.Open filename:=strFilename1 'ファイル testdata = xl.Application.Cells(1, 1).Value'読み込み処理 例 Set xl = Nothing ----------------- 裏で別のエクセルファイルを開き、データを読み込んでいます。 読み込みまでは問題ないのですが、このVBAを実行後、タスクマネージャに「EXCEL」が残ってしまいます。 (タスクバーに表示されているEXCELを全部閉じても、タスクマネージャには残っているような状態になる) Workbooks.Openに対してcloseの処理をしていないからかな?と思ったのですが、対処方法が見つからず、質問させて頂きました。
xl.Quit 起動させたら終了させないと、実行されたままなのは当然だろ。
888 :
名無しさん@そうだ選挙にいこう :2006/12/27(水) 09:34:10
>>887 解決しました。
xl.closeとかかなーと思ってましたが、quitだったんですね・・・
ありがとうございました。
【1 OSの種類 .】 WindowsXPsp2 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 少し 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 vbe 検索 完全一致 すみません、教えてください。 統合環境VBEで、例えば、 ABC を検索すると、ABC_DEF等もハイライトされてしまいます。チェックボックスの ・完全に一致する単語だけを検索する ・大文字と小文字を区別する ・パターン マッチングを使用する を色々な組み合わせで、検索しましたが、完全に一致する単語だけをハイライトすることは出来ませんでした。 どうすれば、ABC だけを見つけることが出来るのでしょうか。 よろしくご教示ください。お願いいたします。
_←これをなくす。
>>889 Excelの検索では無理。
列が一緒なら、オートフィルタで可能だけど、複数列に渡って
いる場合は、VBAのFor Eachで当たっていくしか無いだろうね。
892 :
889 :2006/12/27(水) 11:22:18
>>890-891 レスありがとうございます。
ABC を検索すると、ABC_DEF等もハイライトされるのが仕方ないということがわかりましたので、すっきりしました。
「次を検索」をリターンで押し捲りたいと思います。
ありがとうございました。
893 :
名無しさん@そうだ選挙にいこう :2006/12/27(水) 12:26:57
質問です。 excel2000をxpで使用してるんですが、excelがものすんごく遅いんですがこれの原因ってわかる方いますか? 症状はxpでexcel2000で新しくシートを作ってそこに数字や文字を打ち込んでエンターを押すと次のマスに行くまでに 5秒ぐらいかかります。保存したexcelを開こうとダブルクリックすると真っ白の画面のまま10秒ぐらいかかって やっと開くような感じです。これだけだと説明不足かもしれませんが、以上の症状の対処方法を知っている方っていますか? 打ち込むたびにイライラして感じなんで誰か教えてくださ〜い。
>>893 PCのスペックは?
やってみることとすると、
@Excelの再インストール
AOSの再インストール
スパイウェアやウイルス的なもんじゃねーの。
896 :
名無しさん@そうだ選挙にいこう :2006/12/27(水) 13:00:08
894>> あんまりパソコンに詳しくないのでスペックはこれでいいのでしょうか?? Celeron(R) CPU 2.40Ghz 2.39GHz 632 MB RAM ちなみにパソコンはIBMです。 excelの再インストールはしたんですが、OSの再インストールはまだやってないです。 こんな事例って良くあることなんですか??
>>896 Excelだけ?
普通にテキストに文字打って変換する時は問題なし?
他のアプリの起動時は遅いと感じ無いのか?
アンチウイルスソフト切ってやっても同じか?
【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 excel 保存 ファイル名 番号 前任者の設定らしきものが解除できず困っており、教えてください。 既存の hoge.xls 等を開いて保存(上書き保存でも、名前を付けて保存でも) しようとすると、ファイル名として hoge1.xls のように数字の 1 が付加された ものが表示されます。手動で 1 を消して保存ボタンを押せば問題はないのですが、 ちょこっと上書き保存したいときにもいちいち出てきてしまうので面倒なのです。 どこの設定を変更すればよろしいのでしょうか。 宜しくお願い致します。
>>897 メモリ少なすぎだけど、その遅さはメモリのせいだけではないな。
とりあえずOS再インストールして、出来ればメモリも1GB以上積もう。
900 :
名無しさん@そうだ選挙にいこう :2006/12/27(水) 13:20:22
>>897 基本的にexcelだけなんです。他のアプリケーションは特に問題を感じたことは無いです。
変換時も問題なしです。遅いのは文字を打って次のセルに移動する時やコピペ・上書き保存が
異様に遅いんです。で、自分のPCでは遅いのに、その遅いexcelを他のPCに送って開くと
遅くならず問題なく作業が出来るんです。
とりあえずアンチウィルス試してみますね。
901 :
名無しさん@そうだ選挙にいこう :2006/12/27(水) 13:22:41
>>899 やっぱりメモリが少ないですよね・・・。
ちょっとOSの再インストールを上司に相談してみます・・・。
会社のPCなんで経費がかかるって嫌がるんですよ〜、あの上司。
なんでOSの再インスコに経費がかかるのか。 Excelくらいで、メモリも足りない事ないだろ。
>>898 保存時のファイルの種類がテンプレートになってるとか
904 :
775 :2006/12/27(水) 14:06:59
>>859 できました!!
ありがとうございます。
>>898 その設定の箇所は知らないので、適当に言ってみるが、
Officeの修復をしてみたら、全設定がリセットされるように思うので、
やってみてはいかがか。ファイルが破損していない状態での
修復だけならDISKは必要ない。
csvファイルは、シートを複数枚持つことはできないんでしょうか?
>>906 シートというのは、Excelの機能。
そして、もとより、csvファイルはExcelで開くものじゃなく、
ただのカンマ区切りのテキストファイル。
結果無理。
908 :
名無しさん@そうだ選挙にいこう :2006/12/29(金) 01:15:27
ワードの差し込み印刷みたいな事をエクセルでやることは可能でしょうか?
>>908 VLOOKUP&VBAで出来るよ。
構造的には、差し込み部分を、別シートにリスト化しておいて、
それをVLOOKUPで持ってくる。
あとはループで、差し込む行を変える→画面更新→印刷→…。
Wordに差し込んだ方が、5億倍有用だけど。
ワードの差込印刷は便利なんだけどDDEなんて化石な技術で実装されてるのが不安だな 噂ではvistaではDDEはサポートされないとか聞くし
セルに計算式を入力しています。 何も入力してないセルに関してですが、0と認識せず計算しない方法ってありますか? ちょい質問の意味がわかりづらくてすみません。 どう説明して良いか…日本語の勉強が先かもしれんねorz
申し訳ありません、教えてください。 xp sp2 で エクセル2003です。 コンボボックスを設定したシートがあり、範囲を変えたいのですが 右クリックしても何もメニューは出てきません。コントロールの書式設定も出てきません。 どうすれば範囲を変えられるのでしょうか。 どうかよろしくお教え下さい。
>>914 レスありがとうございました。教えていただいたデザインモード入り切りにかかわらず
右クリックで何もでませんでした。
テンプレを読ませていただいたら、コンボボックスもいくつか種類があるようですが、
人から貰ったもので(連絡がとれません)、どのタイプか分かりません。
言い忘れてしまいましたが、ワークシート上に設置してありまして、クリックしてないときは
何もなく、クリックするとそのセルの外側右に下向き▲がでてくる状態です。
自分で新たにコンボボックスを作ってみたら、確かにデザインモードで右クリックが効く/効かないとなるのは分かりました。
この情報が必要とかありましたらお教え下さい。
いったいどうすれば右クリックがきくのでしょうか?大変あせっているので要領を得ませんがよろしくご教示ください。お願いいたします。
917 :
913 :2006/12/29(金) 14:24:08
>>916 まさにそれでした!
大変に助かりました、本当にありがとうございました!
918 :
貧乏暇なし大学院生 :2006/12/29(金) 20:27:41
中国地方の大学で研究をしている者です。
研究のテーマに関するものを大学生協(メーカーはコクヨ)で購入したキャンパスカードに
記入してファイリングして研究に使用しています。
これの一種ですね↓。
ttp://ja.wikipedia.org/wiki/%E4%BA%AC%E5%A4%A7%E5%BC%8F%E3%82%AB%E3%83%BC%E3%83%89 これまでボールペンを使い記入していたのですが、利き手を怪我してしまったこと、
手書きよりコンピュータ入力のほうが速いこともあり、キャンパスカードにエクセルで
入力しキャンパスカードに印刷することができないかと考え(分かりにくいでしょうか?
役所がすでに枠線が記入されている保険証にPCで記入して印刷するように)自分なりに
作ろうと3日かけて作成してみました。
列と行の幅の単位1ポイントが約0.35mmという情報を頼りに作成して印刷して
みたのですが、サイズも全く合わず、縦横の比率も意図しないものが出来上がってしまいました。
なぜか1ポイント=0.35mmになっていませんし、列と行でのポイントも単位が違うのかもしれません。
研究に使用したいと考えていますのでぜひご教授をお願いします。
【1 OSの種類 .】 Windows XPプロ
【2 Excelのバージョン 】 Excel 2002
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 エクセル、ポイント、列、行、ビジネス文書、単位、テンプレート、キャンパスカード、ソフト、など
919 :
名無しさん@そうだ選挙にいこう :2006/12/29(金) 20:35:14
アドバイスはmuri 使ってるプリンタに合わせて自分で微調整して
>>918 Excelは、あくまで「表計算ソフト」なので、位置合わせて印刷、などという
用途には向いていない。
やるにしても、ポイントなどあてにせず、コピー用紙を当該サイズ(B6?)に
切って、何度もテスト印刷して合わせるしかないかと。
ちなみに、、、
Accessなら、テキストボックスをAlt押しながら結構細かく動かせる上、
差し込みも何一つ苦労せず行えるので、そっちも考えてみては?
921 :
名無しさん@そうだ選挙にいこう :2006/12/29(金) 21:11:31
質問です。 エクセル2003を使用しているのですが、 前は「enter」を押せば改行みたいに一つ下のセルが選択されたのですが、 いつからか「enter」を押しても下がらなくなりました。 何か原因があるのでしょうか?もとに戻すことはできるのでしょうか?
ツール オプション 編集タブ 入力後にセルを移動するにチェックをいれ、方向は下
923 :
名無しさん@そうだ選挙にいこう :2006/12/29(金) 22:39:07
>922 どうもありがとうございました!!!解決しました!!! マクロやってるときに間違っちゃったのかなぁ?
924 :
名無しさん@そうだ選挙にいこう :2006/12/30(土) 11:10:20
【1 OSの種類】 Windows XP 【2 Excelのバージョン】 Excel 2000 【3 VBAが使えるか】はい 【4 VBAでの回答の可否】 はい 質問を3つ(すべて同じです) 1、VBAでB1、B2、B3〜と順番にセルに入っているデータを取得してテキストファイルに書き出す時 B列の1番最後のデータが入っているセルまで(そこより下はすべて空白) を取得したい場合、どうすればいいのでしょうか? 最後の行ってのはどうやって判断するのでしょうか? おそらくFor文のMaxLengthのようなものがあればとは思いますが・・・ 2、上の方法でデータを取得した場合、 例えばB4はA4とセル結合されている場合など 一部結合されている行がある場合、その行だけはA4のデータを取得しようとした時 またその行はA列から取得しているというフラグを持ちたい場合 それは可能なんでしょうか? 3、セル内で改行されているデータがある場合、それをはずすコードとかあるのでしょうか? \nなどを削除しようとしても文字列での\nなら消えてくれるのですが、 コードとして認識されてしまってるので検索をかけても結果がでません 方法を教えてください
>>924 【5 検索キーワード 】が抜けています。
3つとも可能ですのでGoogleでの検索キーワードを再考してください。
926 :
名無しさん@そうだ選挙にいこう :2006/12/30(土) 13:38:03
>>925 ありがとうございます
1,3はできましたが
ググっても2がどうしてもみつかりません
できれば教えてください
【5 検索キーワード 】VBA 結合 列の取得・・・
>>924 1. Endプロパティ使え
2. MergeCellsプロパティで判断しろ
3. \nは正規表現などの改行表現、VBAでの改行表現で検索削除しろ
全てヘルプに詳しく載ってるので、あとはヘルプ読もう。
929 :
名無しさん@そうだ選挙にいこう :2006/12/30(土) 15:14:38
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 Excel オートフィル 設定 etc... ワークシート上にあるデータを使って、カード様のものを作成しようとしています。 データは行ごとに入力してあり、80個ほどあります。 別のワークシートにカードの様式を作り、セルを選択してオートフィルで下に引っ張ると たとえばA1セルならそのカードの行数分ずれて30行あればA30になりますよね… データのあるワークシートを参照している箇所については、 1ずつ増えていってもらわないと困るので、仕方なく その部分をダミーに置換→オートフィル→ダミーを置換 を繰り返してるのですがものすごい手間で、 また様式が変わると全部やり直さないといけません。 何とかいい方法はないでしょうか。 要はデータを元に様式の決まったものを出力できればいいのです… VBAの領域であれば、ヒントだけでもください。この際、精進してみます。 よろしくお願いします。
>>930 !!
おおお。こういう方法がっ!!
既出でしたか。申し訳ありません。
とても、とても助かります。ありがとうございました!!
【1 OSの種類 .】 Mac OS 10.3.9 【2 Excelのバージョン 】 10.1.0 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 エクセル 関数 複雑な計算 比 項ごと 項毎 など 助けてください。 以下の処理ができる計算式を構築したいのです。 以下に手順を書込みたいので、連投させていただきます。 文系ですので数学的な表現に誤りがあるかもしれませんし、 少々長くなりますがお許しください。
933 :
932 :2006/12/31(日) 06:31:54
5種類の比、A〜Eがあります。 A=9:0:0 B=6:3:0 C=6:0:3 D=3:6:0 E=3:3:3 この中から2種類を任意で選び、以下の計算(構築を教えていただきたい計算)をして、 新たな比、xを求めたいです。 ■手順(例として比Aと比Bを選択) 1.比Aと比Bのうち、任意の一方を2で、もう一方を3で、 それぞれ小数点以下は切上で割り、比aと比bを求める。 a=(9/2):(0/2):(0/2) =5:0:0 b=(6/3):(3/3):(0/3) =2:1:0 2.手順1で求めた比aと比bの各第1項、第2項、第3項の数値を足して、新たな比、yを求める。 y=(5+2):(0+1):(0+0) =7:1:0
3.手順2で求めた比yの各項の合計値は、どの比を素材にしても必ず8になる。 ただし、比Eを使った場合、9になることもある。 9になった場合は比y=比xとし、終了。 8になった場合は、手順4へ。 4.手順1で2で割ることを選んだ比(この例では比A)の最大項と同系の、 手順2で求めた比yの項の値に1を足し、比xとする。 この例では、A=9:0:0で第一項が最大。 よって比yも第一項に1を足すことになる。 x=(7+1):1:0 =8:1:0
以上です。 この計算を、例えば上下に連続するセルに「A」や「B」と比の名前を入力するだけで、 別の任意の左右に連続する3つのセルに「8」「1」「0」と、表示されるようにしたいのです。 よろしくお願いします…!
●手順1 A B C D E 1 "A" 9 0 0 2 "B" 6 3 0 という表を作ってVLOOKUP。どうしても A B C D 1 "A=9:0:0" という表からやりたいなら、文字列操作関数で検索や切り出し ●手順2 手順 1が出来てれば普通に計算すれば良いだけ。 ●手順3 普通にIF関数で条件分岐。 ●手順4 MAX関数で最大値を調べて+1 以上。一気に結果を出そうとせず、作業セルを使いながら一つずつ確実に結果を出していこう。 最終的には作業セルは非表示にしても問題ないし。
937 :
名無しさん@そうだ選挙にいこう :2006/12/31(日) 13:38:28
XPのExcel2000ですが、シート上でカーソルを動かすと、選択範囲が広がるだけで他の操作が 全くできません。何が悪いんでしょうか?
939 :
937 :2006/12/31(日) 14:14:42
>>938 サンクス。
やってみたけど駄目でした。
最近Excelだけじゃなく、他でもマウスのクリックを受け付けなくなったりするので、システムががおかしくなってるのかも。
IE7をインストールしたのが失敗かな?
キー補助ソフトやマウス補助ソフト使ってない? 例えばAutoHotkeyとかHoeKeyとかマウ筋とかX Wheelとか。 そういうソフトの設定がおかしかったりバグがあったりすると、937のような現象発生するよ。 何にしてもExcel以外でも発生するんじゃスレ違いだな。
941 :
名無しさん@そうだ選挙にいこう :2006/12/31(日) 16:31:06
中学、高校の数学で、X、Y,a,bなどの変数を使った「式」が出てきますが、この式の計算をエクセルにさせることはできないのでしょうか。 例えば、2a+3a=5aとか、X(4X+Y)=4X2+XY(右辺の「2」は2乗の意味)などのような。 一つ目の例では,A1=2a、B1=3aの時,C1=A1+B1として、C1=5aを導きたい。 エクセルではこんな事できないのなら、何かほかにソフトはありませんでしょうか。 よろしくお願いします。
さんすうの問題とExcel以外のソフトの話はスレ違いだぜ
>>936 レス遅くなりました。
できましたーーーーーー!!!!!!!!!!!!!!!!!!
表ができたことも、とっても勉強になったことも、感謝感激です。
ありがとうございました!
綴り違った Mathematica
947 :
937 :2006/12/31(日) 19:22:40
>>940 >>941 サンクス。
デフラグかけてCHKDSKもかけたら直りました。
ファイルがかなり破損してたようです。
Excel立ち上げ時は症状は同じでしたが、いじくってたらなんとなく直ったようです。
どうもすんずれいしますた。
948 :
名無しさん@そうだ選挙にいこう :2007/01/01(月) 23:28:09
windows xpのEXCEL2003を使ってるんですが、文字の縁取りってどうしたら出来るかわかりますか? こちらで調べてみましたがわかりません。 お願いします
>>948 Excelはワープロじゃなくて計算ソフトなので、セル内の文字の過剰な修飾は出来ません。
修飾した文字を表示させたければ、素直にワープロ使うかオブジェクトとして挿入しなさい。
950 :
名無しさん@そうだ選挙にいこう :2007/01/02(火) 04:14:56
949さんありがとうございます
951 :
名無しさん@そうだ選挙にいこう :2007/01/02(火) 05:12:19
>>951 そりゃエクセルはじめ先行している表計算ソフトに
「ない」機能を積極的に盛り込んでウリにしたのが三四郎だから。
でも売れなかったねえ。
(正直なところ、もう少し評価してやってもいいソフトだとは思った)
954 :
名無しさん@そうだ選挙にいこう :2007/01/02(火) 21:16:57
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 セル 参照 値を固定 A1=100の値が入っていたとします。 B1に =A1 で値をコピーするとします。 その後、A1=200に値を変更した場合 B2の値も200に変わってしまいますが B2の値を100に保持する方法が知りたいです。 よろしくお願いいたします。
955 :
名無しさん@そうだ選挙にいこう :2007/01/03(水) 00:34:11
明けましておめでとうございます。 質問です。 【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2003 【3 VBAが使えるか .】いいえ 【4 VBAでの回答の可否】否 【5 検索キーワード 】 乱数 平均 平均値指定で最小値・最大値を固定して(標準偏差でも可)データを製作することは可能でしょうか? 必然とデータ数も指定することになるとは思いますが、教えてください。 例えば 平均値25.6 最大値10.3 最小値70.2 データ数10のデータ製作 出来ない組合せも存在するし、やはり無理でしょうか?? 当方、最小値と最大値固定で乱数を発生させるまでは何とかできます。
どの時点で値をFIXしたいかは当人にしか分からないから その時点で コピー⇒値貼り付け しか無いと思う。
>>955 考え方を変えてみろ
必要な数だけ平均値のデータを作っておいて
そこから乱数でランダムな二つのセルのデータをプラス/マイナスしていけばいいだろう
最後に乱数ではなく、最小または最大になる値を二つのセルに対して行なえばOK
958 :
名無しさん@そうだ選挙にいこう :2007/01/03(水) 01:02:09
>>957 さん 有難うございます。
考え方は参考になりました。
平均10 最大値30 最小5のような場合は、
最後は10+20、 10-5、10-5、10-5、10-5としなきゃならないのということになりますね。
結局マニュアルになってしまうのですかね〜
>>954 それなら参照を使う必要ない。1回だけ手動でコピペすればよい。
参照とは値を可変させる物なので、値を固定したいときに使う意味はない。
>>958 > 結局マニュアルになってしまうのですかね〜
ならないだろ。その部分を数式化しちゃえば良いだけなんだから。
960 :
957 :2007/01/03(水) 06:34:14
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 種別 合計 年度 取引先 売り上げ 2001 A社 100 2001 A社 200 2002 A社 100 2003 A社 300 2001 B社 400 2002 C社 100 2002 C社 100 2004 C社 200 上のようになってる表から 2001 2002 2003 A社 200 100 300 B社 400 C社 200 200 このように社別、年度別の合計を出したいんですが なにかいい方法はありませんでしょうか? よろしくお願いします。
>>961 ためしてないけど
=SUMPRODUCT((A:A=2001)*1,(B:B="A社")*1,C:C)
964 :
名無しさん@そうだ選挙にいこう :2007/01/03(水) 17:30:32
>>961 条件を&で1つにしてSUMIFで合計
汎用性を求めるならDSUMで
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 VBA インプットボックス Setステートメントを使って範囲を選択するインプットボックスを出す様にしたんですけど Set range01 = Application.InputBox(Prompt:="範囲を選択しろ" , Type:=8) 選択する範囲によっては、値の形式が違うんですけど、とエラーを返されます 特に$GA$208とかA1から離れた場初を選択するとかなりの確率で失敗します 何か制限事項があるんでしょうか?また制限を解除する方法はありますか?
>>965 そんな中途半端に書かれても答えようがない
少なくとも構文は間違えてない
ヒント:条件付き書式
>966 構文は間違えてないです 少なくともA1に近い場所を選択する分にはエラーは出なくて正常に動作します ところが遠い場所になるとSet〜の部分で形式の違う値が入力されましたって エラーを出してとまってしまう訳です 極めて単純なものなんですが一応全文書くと Sub Macro1() Set range01 = Application.InputBox(prompt:="範囲を選択しろ", Type:=8) Set range02 = Application.InputBox(prompt:="範囲を選択しろ2", Type:=8) Set range03 = Application.InputBox(prompt:="範囲を選択しろ3", Type:=8) Workbooks("Book1.xls").Worksheets("Sheet1").Range("2:3").Insert For atai = 4 To 15 Workbooks("Book1.xls").Worksheets("Sheet1").Cells(1, atai + 2).Value = range01.Value Workbooks("Book1.xls").Worksheets("Sheet1").Cells(2, atai + 2).Value = range02.Value Workbooks("Book1.xls").Worksheets("Sheet1").Cells(3, atai + 2).Value = range03.Value Next atai MsgBox "実行しました" End Sub
>>968 コードは極めてヘボいが、とりあえず間違いは無いし
うちの環境では$GA$208を入力しても問題なく動く
存在するセルを入力しているのにエラーになるというなら
そのブックをうpしろ
>>968 一番先頭(Subの外)に
Option Explicit
を書く
>969 内容を見てなんとなく判るかもしれませんが 目的は別のファイルに規則性なく散在しているデータを表にする事です 慣れないものを見よう見真似で作ってるので酷い物だと思います で、今集計元ファイルは手元にないので、試しに空のファイルでやってみたら問題なく出来ちゃった・・・; ファイル壊れてるかも・・・ >970 ありがとうございます 注意点としては変数宣言をすればいいんでしょうか? ちょっと試してみます
何勘違いしてるの?
>972 条件付書式があると失敗するということですか?たしかに条件付書式を多用してますが・・・ 一度試してみます ちなみにOption Explicitは残念ながら効果ありませんでした
975 :
名無しさん@そうだ選挙にいこう :2007/01/04(木) 14:47:33
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 EXCEL 参照 名前 ある列に"金額"の名前を定義します。 ある行に"商品区分"の名前を定義します。 二つの名前の重なったセルを取り出す場合"=金額 商品区分" で取り出せますが、それを自動化したいです。 あるセルに検索キーとして"金額" あるセルに検索キーとして"商品区分"を記入しておきます。 この二つのセルの内容を参照して重なったセルの内容を 取り出す方法を知りたいです。よろしくお願いいたします。
>>975 =INDIRECT(B1) INDIRECT(A2)
977 :
名無しさん@そうだ選挙にいこう :2007/01/04(木) 15:34:33
>>975 「自動化したい」ならVBA
セルの値によってフィルタがかかるようにするしかないんじゃない?
978 :
975 :2007/01/04(木) 15:40:33
>>976 >>977 早々のお返事ありがとうございます。
INDIRECTを二つ並べて書くだけで良かったんですね。
お手数をおかけしました。
>975 indexとmatchもしくはvlookupとmatchで組み合わせたりとか 俺はよく使うけど
もう既に解決済み
981 :
名無しさん@そうだ選挙にいこう :2007/01/04(木) 19:34:29
てst
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 Excel 標準のテンプレート 新規作成 Excelを起動したときの新規作成されるブック(標準のテンプレート!?)は、通常どこに保存されていますか? 標準テンプレートを変更したいのですが? フォルダウィンドウでの新規作成はExcel9.xlsの変更で出来たのだけど XLStartフォルダにBook.xlt作っても、うまくできません・・・
984 :
982 :2007/01/04(木) 22:07:56
[ファイルの種類] を [テンプレート] にすれば自動的にxltになりますが?
985 :
名無しさん@そうだ選挙にいこう :2007/01/04(木) 22:52:54
テンプレートだわなあ
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 初心者 【4 VBAでの回答の可否】 ○ 【5 検索キーワード 】 VBA イベント 隣のセル 自動入力 勤務表を作っています。 範囲A1:Z20のなかで”E”と打ったら,右隣のセルに”-”と自動入力 されるようにしたいです。 検索してみましたが初心者なもので今ひとつ理解できません。 ご教授よろしくお願いします。
>>986 普通にVLOOKUPじゃだめなんですの?
989 :
986 :2007/01/04(木) 23:48:31
>>987 範囲全域にAとかEなどの勤務様態を表す文字を打ち込んでいくので
関数は埋め込めないのです。
>>990 すみません書き方が悪かったです。
例えば,
範囲の中で,B2に"E"と打ったとします。そうすると右隣のC2に"-"と出る。
範囲のどこで"E"と打ってもそうなるようにしたいのです。
A B C
1
2 E -
3
>>991 例えば、C列に「E」が入る可能性もあるって事?
だったら、VBAでやるしかないな。
そうでないなら
>>988 で。
ごめん、今忙しい。誰かコード書いてくれるの待て。
忙しい理由は、新スレ立てようとしてるから。
とりあえず、無理だったら誰か頼むから、まだ埋めないで。
>>992 > 例えば、C列に「E」が入る可能性もあるって事?
その通りです。
>>993 VBA書くより、全セルにIF文書いておいて、そこに上書きする形で
Eとか書いてった方が早いかと。
もしくは、A1に「E」、B1に「-」と書いて、A1:B1をコピーして、
貼り付けて入力していくのではダメなの?
つーか、仕様から見直した方が良いんじゃね?
>>994 乙
996 :
991 :2007/01/05(金) 00:28:53
>>995 お返事ありがとうです。
しかし,それは出来ません。勤務シフトをあれこれ考え迷いながら
その表を組んでいくので何度も入力し直したりします。
(If文を入れておいても上書きされてしまいます)
"A"や"B"の勤務はそのまま入力するだけですが,
"E"の勤務の翌日は,必ず"-"にしなければなりません。
何人かがコレをやってたまにミスをして"E"の次に"A"などを
入れてしまうのをなるべく防ぎたいです。
Private Sub Worksheet_Change(ByVal Target As Range) Dim r As Long, c As Long r = Target.Row c = Target.Column With Cells(r, c) If .Value = "E" Then .Offset(0, 1).Value = "-" End With End Sub 一応家の環境では問題なかったので 範囲とかは自分で考えるとよろし 大文字小文字を区別するかどうかはまた別なので わからなかったらおいで
>>997 どうもですm(_ _)m
「条件付き書式」は名案なんですが,"-"は会社の設定なんで
勝手に変えるわけにも行きません。
>>996 私だけがこの表でシフトを作るのならカット&ペーストで充分なんですが
多数の人間が打ち込むのでそうも行かないです。
* + 巛 ヽ
〒 ! + 。 + 。 * 。
+ 。 | |
* + / / イヤッッホォォォオオォオウ!
∧_∧ / /
(´∀` / / + 。 + 。 * 。
,- f
/ ュヘ | * + 。 + 。 + このスレッドは1000を超えました。
〈_} ) | 次スレも…ビジネスSOFT板クオリティ!!
/ ! + 。 + + *
http://pc10.2ch.net/bsoft/ ./ ,ヘ |
ガタン ||| j / | | |||
――――――――――――
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。