1 :
名無しさん@そうだ選挙にいこう :
2011/05/02(月) 12:44:01.03 ▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★1 質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★2 要望は具体例や図を使って明確かつ具体的に。
★3 質問前に
>>2-20 あたりの注意書きやQ&Aを必ず読むこと。
★4 質問テンプレ(雛形)は必須じゃないけど、
OSやExcelのバージョン、VBAの可否など(下記テンプレ1〜4の情報)は必須情報。
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類 .】 Windows**
【2 Excelのバージョン 】 Excel**
【3 VBAが使えるか .】 はい・いいえ
【4 VBAでの回答の可否】 可・否
【5 検索キーワード 】 Googleやヘルプでの検索キーワード
※【4】は、VBAはわからないけどコード書いてくれるならVBAでもいいって場合は「可」
VBAを使うのは避けたいって場合は「否」にしましょう。丸投げする場合は、必要に応じてブックをアップすること。
※【5】は、あなたがGoogleやヘルプで検索した際に使ったキーワードを書いてください。
まだ検索してないなら、質問の前にGoogleやヘルプで検索してみてください。
ttp://www.google.co.jp/ 前スレ
Excel総合相談所 96
http://hibari.2ch.net/test/read.cgi/bsoft/1299582492/
2 :
名無しさん@そうだ選挙にいこう :2011/05/02(月) 12:44:14.99
▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━ ・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 テキストボックス(エディトボックス)、コンボボックス(ドロップダウンリスト)、リストボックス、コマンドボタン、 チェックボックス、オプションボタン(ラジオボタン)、スピンボタン、スクロールバー、等の質問をするときは、 ユーザーフォーム、コントロールオブジェクト、フォームオブジェクトのどれなのかを必ず書くこと。 ・B 書籍や解説サイトの紹介以来はスレ以外。ここは技術的な質問のみで。
3 :
名無しさん@そうだ選挙にいこう :2011/05/02(月) 12:44:25.12
★ルールを無視すると…
>>1-2 あたりのルールに従うか否かは自由だけど、従わないと以下のような不利益があるよ
★1.マルチをしてしまったら…
A.謝っても他での質問を取り下げても、以後その質問に対する回答は付かない物と思ってください。
それが嫌なら初めからマルチなんてしないように。
>>2 にマルチ禁止と書いてあり、
マルチの意味が分からなければ検索すれば出てくるので、「知らなかった」は通用しません。
★2.
>>1 ★4に従わず、必要な情報を出さないと…
A.自分の使用しているバージョンで使えない機能を答えられたり、VBA使えないとか使いたくないと書かないと
VBAでの解決OKで自分でコード書けるものと勝手に解釈されて、「VBAで出来るから自分でコード書いて」程度の
適当な回答を返されたりします。また、ここではVBAコード書けない人の丸投げ依頼を許可してますが
これはきちんとルールに従って質問、依頼した人のみの特権です。
★3.情報・条件を後出しすると…
A.後から出された情報は意図的に無視されたり、質問自体を放置されたりします。
>>1 ★4の必須情報はもちろんのこと、要望や条件、既に試したことなどは、
長文になってもいいので詳細かつ明確かつ具体的に書きましょう。
★VBAについて
VBAとは、『Visual Basic for Application』の略で
Application
├Workbooks
|└Workbook
| ├Worksheets
| |└Worksheet
というApplication以下のオブジェクトを、VB言語で操作するものを指します。
例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、
セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。
4 :
名無しさん@そうだ選挙にいこう :2011/05/02(月) 12:44:34.16
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法) ▼環境・書式 ・ 列数を256列以上、行数を65'536行以上に増やす (Excel2007以降では16'384列、1'048'579行扱える) ・ Excel2003以前で条件付き書式を3つ以上設定する (文字色だけなら、入力規則でも3つ設定可能。それ以外はVBA) ・ 行の高さを0.25きざみ以下の単位で指定する ・ セル内の文字を○で囲む、一部のみ2段にする (オートシェイプ、オブジェクト) ・ オートフィルタで英字の大小文字を区別する (小文字 → 半角、大文字 → 全角、と使い分ける) ・ 祝日を判断する (作業セルに祝日を列挙、VBA) ・ 同一列内でセル(行)ごとに列幅を変える、同一行内でセル(列)ごとに列高を変える (セルの結合) ・ ヘッダー・フッターのページ番号の開始番号任意指定、ページ番号演算、同シート内で違ったものを指定など ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する ・ 罫線幅の自由指定 ・ 表示形式で「10/ 1」といった書式を指定し、日付が一桁の場合のみ日付の前にスペースを入れる (TEXT関数、VBA) ・ 書式設定の「折り返して全体を表示する」と「縮小して全体を表示する」を同時に使う (折り返しを有効にして、手動で文字サイズを調整) ▼操作 ・ ファイラーの右クリックメニューからの新規作成で、Excelで設定したシート数のブックを作る (任意のシート数のテンプレートを作成) ・ 複数シートを選択して入力規則やシートの保護を設定する (VBA) ・ オートコンプリート機能を、別列や離れたセルで動作させる (VBA) ・ 選択範囲から一部を除く、Ctrlを押しながらの複数選択で一部を取り消す (VBA) ・ 優先キーを3つ以上指定しての並べ替え (優先度の低い方から順に並べ替える) ・ 1セルを分割 (分割したいセル以外を結合)
5 :
名無しさん@そうだ選挙にいこう :2011/05/02(月) 12:45:05.76
上記 「Excelで出来ないこと、仕様上の制限」 は、一般的に出来ないとされていること、出来ないと思われるものです。 間違いがある可能性もあるので、上記に挙がってるもので「コレはこうすれば出来るよ」というものがあったらご指摘ください。 Excel2010についても未確認な項目が多いので変更点が有ればご指摘下さい。 また、ここに書かれてないことでも、Excelで出来ないことはたくさんあります。 ここに書かれてないからといって必ず出来るはずだなんて思わないように。 >▼環境・書式 > ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する 補足 2007以降ではページレイアウトビューの表示時に限り、幅・高さともcm単位で表示され、 指定も同じくcm単位でできる。 ただし大元がインチ系なのでなかなかピタリの値は出ない。1cm→0.98cmのように 近い値に勝手に丸められる。 以上でテンプレ終わり (Excel総合相談所 94からコピペ、一部改定)。
6 :
名無しさん@そうだ選挙にいこう :2011/05/02(月) 13:16:05.74
>1乙
>1乙ついでに前スレ704からの質問にあったExcelのお節介機能などを書いておきます。 1 お節介機能 表の範囲に続けて表外(下)の方にデータを入力し続けると、罫線や塗りつぶしなどの書式が引き継がれる 対策:ツール>オプション>編集のタブ で、「データ範囲の形式および数式を拡張する(L)」のチェックを外しておく 2 複数シートを選択した状態(作業グループ状態)で保存したときに自動再計算機能がオフになる 対策:作業グループの必要がなくなったら、この状態を解除(ひとつのシートを選択した状態に)する
8 :
名無しさん@そうだ選挙にいこう :2011/05/07(土) 10:06:15.51
Excel 2002で非常に古いバージョンを使っています。 伺いたい事は グラフの表示にて横棒を選択の際、 データの範囲を下記の様に選択しても 1 2 3 4 5 横棒のグラフでは 5 4 3 2 1 といった具合に 上下が逆さまに表示されますが データ選択と同じ順番 1 2 3 4 5 でグラフを表示させるには どうすれば良いのでしょうか? ご教示下さいませ。
>>8 Y軸のラベル(グラフの左側に1 2 3 4 5と表示されている部分)を右クリック、軸の書式設定→目盛タブ→
「軸を反転する」にチェック、OKをクリック
次に、上に行ってしまったX軸の軸ラベルを右クリック、軸の書式設定→パターンタブ→
「上端/右端」を選択、OKをクリック
基準点という概念を理解していれば 1 2 3 0/0 1 2 3 こそが「逆」で 3 2 1 0/0 1 2 3 と、X・Yどちらも基準点から順に増えていくのが「順」だと思うはずだが… まあこういう需要があるから軸の反転機能があるわけで、やろうとしていること自体は否定しないが、 この質問は、本来「データ順とは逆に表示したいのですが、どうすれば良いですか?」と来るべきだよな
11 :
名無しさん@そうだ選挙にいこう :2011/05/07(土) 11:59:23.05
>>8 です
判りました、
教えて頂きありがとうございました。
12 :
名無しさん@そうだ選挙にいこう :2011/05/08(日) 01:37:59.66
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 excel2007 ”コメントの枠” コメントの枠の形の設定を最初から全てに適用できないでしょうか? 毎回コメントの枠の大きさ等を手動で1つ1つ変えるのが面倒なので 最初にコメント挿入した時点で変更が適用された状態になっていると助かります。
13 :
名無しさん@そうだ選挙にいこう :2011/05/08(日) 12:33:36.06
Excel2003 SP3です。 セルを小さくしすぎると、そこに数値がある場合に表示しきれなくて“#”って表示されるじゃないですか? あれをセルをはみ出してもいいので、全部表示させたいです。(文字列だとそうなるけど、数字でそれをやりたい) セルを結合するのは後々めんどくさいので、書式とかオプションでできないでしょうか? よろしくお願いいたしまする
>>13 数値を数字文字列にする
具体的には
直接入力されている値なら、先頭に'を入れる
数式結果や特殊な表示形式を適用したいならTEXT関数を使う
それを再度計算で使いたいならVALUE関数などで数値に戻して計算する
>>14 なるほど
勉強になりました。
ありがとうございます!!
m(_ _)m
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 以前OSがWindowsMe,excel2000でVBAでマクロを組んでて 今の環境になってまた新しくマクロ組み始めました シートからマクロを起動させたかったので 図形挿入→マクロ登録 で既存のマクロを登録させようとしたのですが 「マクロ シートに対する参照を指定してください」とエラーが出て断念 で、ここまではいいのですが(↑の方法はよくわからないのでボタンクリックでやることに) 今まで「マクロの表示」からマクロの編集ができたのですが「マクロの表示」を押すと「作成」しか選べず 既存のマクロを選択しても編集や削除ができなくなっています シートの「マクロの表示」→マクロ作成→VBAの編集画面→編集画面の「マクロの表示」 と飛ぶと編集・削除もできるのですがいちいち編集するのにマクロを新規作成せねばならず困っています 図形挿入のくだりの前にはマクロはちゃんと動いていたのでソースコードの問題ではないはずです 解りづらい質問とは思いますが回答よろしくお願いします
17 :
16 :2011/05/08(日) 23:17:58.77
それと言い忘れたのですが新しくブックを作っても同様の現象が起きます
18 :
名無しさん@そうだ選挙にいこう :2011/05/09(月) 02:59:37.88
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 【5 検索キーワード 】 excel2010でエクセルを呼びだそうとすると、拡張子が xlsx になってしまいます。 拡張子がxlsm でないとマクロが記録できないので、非常に不便です。 普段から xlsmで開ける方法を教えていただけないでしょうか
【1 OSの種類 .】 windows vista 【2 Excelのバージョン 】 Excel2007 A B C A1 B1 (B2-B1)/(A2-A1) A2 B2 (B3-B2)/(A3-A2) A3 B3 こんな感じでCだけ隣のセルと半分ずつずらして表を作りたいのですが、 どうすれな良いでしょうか。 またAを横軸、Cを縦軸にしたグラフを書く際に、 A1とA2の間に (B2-B1)/(A2-A1) の値を A3とA2の間に (B3-B2)/(A3-A2) の値を取りたいのですが、 そのようなグラフは作れるでしょうか。
20 :
19 補足 :2011/05/09(月) 05:56:49.44
【3 VBAが使えるか 】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】Excel 隣り合うセル 半分 ずらす
21 :
19 20 :2011/05/09(月) 07:24:26.55
19は自己解決しました
22 :
名無しさん@そうだ選挙にいこう :2011/05/09(月) 08:50:33.64
OS:WindowsXP バージョン:Excel2002です ・・・ある数値をシートを超えて 計算式の中で利用したいのですが その方法を教えて下さい。 例えばシート1のセル・A1に100を入力した時に シート2のセル・A1、シート3のセル・A1に 入力した100が自動的に現れるようにしたいのですが シート2のセル・A1、シート3のセル・A1に それぞれどの様な計算式を入力したら良いのかを 教えて頂きたいのです、 宜しくお願い致します。
>22 当方Excel2003だけど、手順は同じはず 1 シート2のA1セルをクリックしてから = を入れる 2 画面下の方のシート1のタブをクリックし、シート1を前面にする 3 シート1のA1セルをクリックし、[Enter]キーを押す(画面はシート2に戻っているはず) 4 シート2のA1セルをクリックしてから[F2]キーを押す 5 計算式の部分を全て選択し、[Ctrl]を押しながら[C]キーを押す(複写の操作) 6 画面下のシート3のタブをクリックし、シート3を前面にする 7 シート3のA1セルをクリックしてから[F2]キーを押す 8 [Ctrl]を押しながら[V]キーを押す(貼り付けの操作)、[Enter] これで試してみてください
24 :
23 :2011/05/09(月) 10:12:42.22
25 :
名無しさん@そうだ選挙にいこう :2011/05/09(月) 10:56:00.46
リスト作成時において、リストを表示させるアイコンのサイズが小さいんですが このアイコンを大きく表示させることは可能でしょうか。 Excel 2003です。
▼のドロップダウンボタンのことか? それなら入力規則のリストでは任意変更不可 全体の表示倍率を上げて他を縮小すれば、擬似的に大きくできるけどね フォームツールのリスト(コンボボックス)なら、ボタンのサイズは高さ依存で 高さを上げればそれと同幅の正方形ボタンになる あとはVBA使えば入力規則のリストが設定されたセルを選択するだけで ▼押さなくてもリストが表示されるように出来るので、それならボタンのサイズは関係ないでしょ
27 :
名無しさん@そうだ選挙にいこう :2011/05/09(月) 11:50:34.29
>22より 感謝・感謝 ありがとう
28 :
名無しさん@そうだ選挙にいこう :2011/05/09(月) 12:08:03.92
>>26 即レス感謝します。まだExcelには精通してないのでVBAっての初めて聞く単語でした。勉強になりました。
29 :
名無しさん@そうだ選挙にいこう :2011/05/09(月) 23:20:07.24
>>18 お願いします
右クリック⇒新規作成⇒エクセル を呼ぶとき、拡張子をxlsmにしたいんですが・・・
windows7だとxlsxだとマクロを保存してくれません…
>29 Excel2007/2010を持ってないので適切なアドバイスをできませんが、 新規作成のときに .xlsx しか選べなくても、直後に「名前を付けて保存」を行い、 その際にファイルのマクロ付きブックとして(.xlsmを選んで)保存したら、 その後はマクロを登録できるようになりませんか?
>>29 右クリックってどこを右クリックするのかと思ったら、Winのデスクトップか
>>29 も
>>18 も言葉が少なすぎで分かりにくいし、
そもそも貴方のやりたいことはExcel側でどうにかすることではないのでスレチ
で、ざっくり検索してみたけどXPの情報しか見つかんなかったんで、
Windows板にでも行ってみてくれ
33 :
名無しさん@そうだ選挙にいこう :2011/05/10(火) 00:22:44.00
>>29 普段から保存時に
ファイル→名前を付けて保存→ファイルの種類(T):マクロ有効Excelブック
と、行ってください。
既存のxlsxブックも同様の処理をしてください。
※ただし既存のxlsxブックの場合、マクロ有効ブック(xlsmブック)を他に設けてしまう
事になりますが。
35 :
名無しさん@そうだ選挙にいこう :2011/05/10(火) 05:57:00.10
36 :
29 :2011/05/10(火) 06:50:19.99
シートを高画質でjpg(png)化したいんだけどどの手段が一番よいでしょうか? 画面をコピーしてペイントに貼り付ける方法は試したのですがどうも画像が荒くなっちゃってて…
>>37 仮想プリンタ
pdfが有名だけど、pdfをjpgやpngにする方法もあるし
直接jpgやpngで出力できる仮想プリンタもある
どう使うかとか、どの仮想プリンタが良いとかはExcel関係ない話なので割愛する
40 :
じゃが山さん :2011/05/11(水) 02:14:37.95
どや顔のところ悪いんだが、 画面をコピー(PrintScreen)と同じ荒い解像度・・・・・意味無さすぎてワロタw しかもほとんどパクリソース
42 :
名無しさん@そうだ選挙にいこう :2011/05/11(水) 03:37:54.03
HWNDとか懐かしいな
俺の画面表示カラーは256色だぜぃ(嘘
44 :
名無しさん@そうだ選挙にいこう :2011/05/11(水) 15:44:36.35
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】excel 印刷 ズレる 罫線でマス目を引いた1ヶ月の予定一覧表を作っているのですが、 5/21 22 23 24 25 〜 と1つのセルにひとつずつ入れた日付の数字が、プレビューでは問題ないのに 印字してみると、5/21は枠の中にちゃんと収まっていますが、22から先が 22232425262728293031 と枠を無視して全部繋がってしまいます。 また、31の後には6/1から2 3 4 5〜と20まであるのですが、 6/1から9までは1つずつ印字されるのに、10の後はまた 1011121314151617181920 と繋がって印字されます。 その下の行には対応する曜日が土 日 月 と入っていますが、それは問題なく6/20まで ズレずに入っています。 同じファイルを違うパソコンで開いて印字すると、同じプリンタで印字しても 文字のズレはおきずに、きちんとマス目の中に1日分ずつ収まっています。 何故こんな現象が起きるのかわかりません。どうしたら解決できるでしょうか
>>44 Excelではよくあること
フォントを少し小さめに設定しておく
46 :
名無しさん@そうだ選挙にいこう :2011/05/11(水) 20:47:20.58
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel 2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 数式についての質問です。 (A$1-A$3)/5 これを下の行へ(A1-A3)はそのままに5だけ+1づつ (A$1-A$3)/6 (A$1-A$3)/7 としたいんですが、手入力で6,7・・・じゃなく、 +1させる関数式ありますか?
47 :
名無しさん@そうだ選挙にいこう :2011/05/11(水) 21:20:56.07
48 :
46 :2011/05/11(水) 21:49:00.51
エクセルをゼロから独学で覚えたいのですが 普通に考えて2010を覚えた方が良いのでしょうか? 普及率などで2007を覚えた方が融通が利きますか?
50 :
複乳 :2011/05/11(水) 23:57:29.45
どっちも大して変わらないよ あとタブン2010しか売ってない
>>50 そうでしたね
売ってないって要素を忘れていました
有り難うございました
52 :
じゃが山さんfromシベリア代行 :2011/05/12(木) 03:17:13.87
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 A1,A4,B5,C8の値が1以上であるものだけで平均を出したいんですがどう入力すればいいでしょうか?
54 :
複乳 :2011/05/12(木) 15:59:00.07
>>53 =(IF(A1>=1,A1,0)+IF(A4>=1,A4,0)+IF(B5>=1,B5,0)+IF(C8>=1,C8,0))/COUNTIF(A1:C8,">=1")
何でもいいんじゃないの
>>53 =(A1*(A1>=1)+A4*(A4>=1)+B5*(B5>=1)+C8*(C8>=1))/((A1>=1)+(A4>=1)+(B5>=1)+(C8>=1))
AVERAGEIF教えたれよアホかw
質問者のExcelバージョン見てないんだろ いつものことだ
58 :
名無しさん@そうだ選挙にいこう :2011/05/13(金) 23:50:57.65
OS:win7 32bit Ecxel:2008 VBA可 転写 Excel 文字列などでググりました ある1つのセルに 結果 : (Aチーム) x - y (Bチーム) と表示させたいです(x,yは他のセルから参照した数値) ただいま =A1 &"結果 : (Aチーム名) "& TEXT(D9,"&""&TEXT(D18,"0")&" (Bチーム名)" と記述してあります これではセルに直接チーム名を記述しているので、他セルから参照させて表示したいです (Aチーム名)、(Bチーム名)のところに例えば、A1,A2のセルに入った文字列を表示させるにはどうしたらいいのでしょうか?
A1,A2にチーム名には ( ) も付いているなら ="結果 : "&A1&" "&D9&" - "&D18&" "&A2 この式で ( ) を付けたいなら ="結果 : ("&A1&") "&D9&" - "&D18&" ("&A2&")" TEXT関数外しちゃまずいなら ="結果 : "&A1&" "&TEXT(D9,"0")&" - "&TEXT(D18,"0")&" "&A2 ="結果 : ("&A1&") "&TEXT(D9,"0")&" - "&TEXT(D18,"0")&" ("&A2&")"
60 :
複乳 :2011/05/14(土) 00:26:53.18
>>58 その数式だとエラーになる。閉じカッコが一つ足りない
61 :
複乳 :2011/05/14(土) 00:28:12.15
と思ったら終わってた
62 :
名無しさん@そうだ選挙にいこう :2011/05/14(土) 02:50:16.41
【1 OSの種類 .】 WindowsXP-Pro 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 excel 比 基準 セル 計算 あるセル(A1)の値を100%として、その他の(その下の)セル(A2〜A5)の値を A1に対するパーセンテージとして得るにはどうしたら良いでしょうか? 計算式は例えば、 =100*A1/A1 → 100 =100*A2/A1 → X =100*A3/A1 → Y のようになるかと思いますが、(手入力ではない)自動計算を使った方法が分かりません。
=100*A1/A$1 こういうことか?
64 :
複乳 :2011/05/14(土) 02:59:00.78
>>62 B2に
=100*A2/$A$1
でいいのかなぁ
つーかなんで複乳は同じ答えを書くんだ? 他の人が答えてるときは、複乳は答えなくていいよ 「それよりこうやった方がいいよ」みたいな、より優れた解法を紹介するならまだしも いつも既に付いてる回答と同じか、それ以下なんだから
>>59 ご丁寧にありがとうございました!
助かります
>>58 ちょっと気になったんだけどExcel2008ってMac用だけどWindowsに使えるの?使ってるの?
>>66 2分だからリロードしないで書いただけだろ?
しかし、そういうことが1回や2回じゃないからなぁ
>>56 AVERAGEIFはExcel 2007から使えるんだよなー。
72 :
名無しさん@そうだ選挙にいこう :2011/05/14(土) 11:16:08.79
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 勉強中 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 excel 変数 ComboBoxA〜ComboBoxD までありComboBoxAのAの部分を変数で処理したいのですが変数で調べても良く分かりませんどなたか教えてください、お願いします
73 :
72 :2011/05/14(土) 11:16:38.57
取り合えずソース書いておきます Sub 個人貸出表入力2() Dim 箱 As Object Windows(bihinn.TextBox25.Text & ".xls").Activate Sheets("Sheet1").Select Worksheets("Sheet1").Range("A6").Select Do Until ActiveCell.Value = "" ActiveCell.Offset(1, 0).Select Loop ActiveCell.Offset(0, 0).Select ActiveCell = bihinn.TextBox24.Text If bihinn.CheckBoxA Then 箱 = "A" ActiveCell.Offset(0, 1).Select ActiveCell = bihinn.ComboBox & 箱 & 2 & .Text ActiveCell.Offset(0, 1).Select ActiveCell = bihinn.ComboBox & 箱 & 3 & .Text ActiveCell.Offset(0, 1).Select ActiveCell = bihinn.ComboBox & 箱 & 1 & .Text ActiveCell.Offset(0, 1).Select ActiveCell = bihinn.TextBox & 箱 & 6 & .Text ActiveCell.Offset(0, 1).Select ActiveCell = bihinn.TextBox & 箱 & 4 & .Text ActiveCell.Offset(0, 1).Select ActiveCell = bihinn.TextBox & 箱 & 5 & .Text End If ActiveWorkbook.Save ActiveWindow.Close End Sub
> 【4 VBAでの回答の可否】 否 では、何も答えることは無いなw という意地悪はおいといて、 シート上に配置したコントロールツールのComboBoxなら OLEObjects("ComboBox" & 変数).Object.Text ユーザーフォーム上のComboBoxなら ユーザーフォームオブジェクト.Controls("ComboBox" & 変数).Text
>>66 >つーかなんで複乳は同じ答えを書くんだ?
>他の人が答えてるときは、複乳は答えなくていいよ
冷静に読むとマヌケだなw
複乳が間抜けなのは今更言うまでもあるまい。
>>76 そうじゃなくてキレながら複乳複乳連呼してるところがさ
じわじわくる
複乳本人か
>>77 そうでもないだろ。
というか同じようなこと以前も言われてたし。
80 :
複乳 :2011/05/14(土) 14:57:39.52
本人です
名前欄間違わないように気を付けてね
絶対できないだろうな、と思いながら聞いてみる。 F2でセルを編集状態にしていると、カーソルがセルの方にあるけど、カーソルををキーボード操作で上の数式バーの方に移せない? マウスじゃないと出来ないような気はするんだけど、ちょっと聞いてみる
セルが空の場合に限定されるし、先頭に=が入るけど F2でセル編集にしてからCtrl+Aで数式バーに移る
シート間のソートについて質問です。 納品されるアイテムが順不同に並んでいるのですが、それらを次のシートで任意の順番に並べたいんです。 毎回並べる順番は決まっているので、一度設定したらそれ以降自動的にソートされるとうれしいんですが。
85 :
84 :2011/05/14(土) 15:24:39.58
例 【シート1】 【シート2】 いちご @バナナ ぶどう Aいちご バナナ Bぶどう いちご Cりんご ぶとう Dみかん 【シート1】の並び順はいつもバラバラなんですが、【シ−ト2】における並び順は固定です。 これをコピペ以外に簡潔に並び替える方法ってないでしょうか。
セル内で編集できなくなるやんw
>>84-85 【シート2】
A B
1|バナナ 1
2|いちご 2
3|ぶどう 3
4|りんご 4
5|みかん 5
【シート1】
A B
1|いちご =VLOOKUP(A1,シート2!$A$1:$B$5,2,FALSE)
2|ぶどう
3|バナナ
4|いちご
5|ぶとう
B列をキーに昇順ソート
>>83 確かに限定機能だけど、面白いね、ありがとう
90 :
72 :2011/05/14(土) 16:48:31.69
>>74 助かりました、変数がどうも理解できない・・・勉強あるのみですね 汗
本当にどうもありがとうございました。
>>82 Excelの機能から外れるけど、そういう常駐ソフトを作るのは可能
外部ソフト頼りで良いならAutoHotkeyで出来るけどな
>>84 ユーザー設定リスト使えば?
数に限りがあると思ったが512までだっけ?
漠然とした質問で申し訳ないのですが・・・ 当方エクセルを使って株価の動きを検証しています 多くの人がVBAを使っているらしいのですが 自分はすべてエクセルの関数をコピーするやりかたでVBAを一切使っていません VBAの使い方がわからないというよりどこでVBAを使えば便利なのかがわからないんです 例えば移動平均を求める関数を1000行にコピーするのと VBAを使って1000行に計算後の数値を入力していくのとどちらが良い方法なのか? といったところがよくわかっていません VBAを使うポイントというかこういうとこで使うべきというアドバイスいただけないでしょうか よろしくお願いいたします。
95 :
複乳 :2011/05/15(日) 02:12:06.58
>>94 軽ければどっちでもいい
重いならvbaで計算させて値だけセルに入力する形にすればいい
他には面倒と思った作業のほとんど全てはvbaで全自動化できると思っていい
ただしコードを各作業自体は結構面倒なので、どちらが楽かはアンタにしかわからない
チャレンジしてみたら?
タダだし、自宅ですぐできるし
プログラム板にもVBAスレあるからわからなければそっちで聞くのもイイ
>>95 ありがとうございます。
チャレンジしようと思って色々と本を買ったりはしているのですが
どこで使えばいいのかがよくわからなくて・・・
超初心者向けの本を買ってとりあえず始めてみます。
VBAまともに使えてない奴が、VBAの蘊蓄とかw
98 :
複乳 :2011/05/15(日) 04:39:36.28
>>97 ありえねーよなw
複乳さっさと死ねばいいのに
99 :
複乳 :2011/05/15(日) 04:48:30.25
みんなで複乳名乗ろうぜ
貧乳じゃだめかしら
>94 自分で作ってときどき使っているのが、計算式一覧出力のVBAです。 Excelの基本機能として、計算式を表示させる(ツール-オプションの設定にて)機能がありますが、 VBAを利用すると、開発中のシートの「計算式を出力させたい」部分を範囲指定して、マクロを 実行すると、シート名、セル位置、計算式、値(セルの書式に応じた形式)を1セル1行にして マクロのあるブックに出力します。 計算表を駆使したシステムのドキュメント代わりになるし、計算式の間違い(計算式中の行指定 部分のズレなど)の発見にも便利です。
ワークシート分析機能を使いこなせてない人?
103 :
84 :2011/05/15(日) 18:21:09.00
>>88 ありがとうございます!
早速使わせてもらいます!
104 :
84 :2011/05/15(日) 18:22:17.46
>>88 ありがとうございます!
早速使わせてもらいます!
家計簿を作ってます。 「食費」「光熱費」とかの出費の分類を毎回全文字記入するのが面倒なので、 その列では「a」と入力したら「食費」「b」と入力したら「光熱費」というように文字列が置換されるようにしたいんですが、 こういうことって出来ますか? 違うセルで文字列を置換ならSUBSTITUTEを使うようですが、同じセル内の場合どうすればいいかわかりません。
>>105 同じセルで、は無理。後でCTRL+Hで置換するとかになるとおもう。
どっちかというと、セルの入力規則を使いなはれ。
入力規則はググれ。
それか、連続しているセルなら上の情報がALT+↓で出てくるよ
>>106 ありがとうございます。
教えてもらった入力規制でリストを作ったら、使い易くなりました。
後々、分類を変更追加する可能性もあるので、自分がやりたかった方法より拡張性があって良いです。
ありがとうございました。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel97 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】エクセル { } 使い方 質問 下記の式を右に11列コピーしその後下に11行コピーするとエクセルが落ちます。 PC変えても落ちました、同じ機種メビウスでも落ちないPCもあります。 オープンオフィスの最新版でも落ちました。 {=SUM((会費納入表!$C$4:$C$44=$B4)*(会費納入表!$D$4:$D$44=C$3))*会費} です、前後のカッコはctrl+alt+enter でいれるらしいです、私の古いpcでは入りません。 このカッコはなんの意味があるんでしょうか。なければ落ちないんですが。
>>108 { }に意味があるのではなく、式が通常数式か配列数式かの区別のために表示されているだけです。
{=式} というのは、セルや数式バーに {=式} を入力するのではなく =式 と { } を外した式を入力し
Enterで確定する代わりにCtrl+Shift+Enterで確定します。AltではなくShiftです。
またその式は、入力する場所によっては循環参照というエラーを起こします。
そもそも、{ } の意味さえ分かってないようだと、その式も自分で組んだ物ではなく
その式がどういう内容なのかも把握してないのでは?
しかし、いろいろと間違いが多すぎる上に、何がやりたいのかも全く書かれてないので、これ以上のことは言えません。
「何故問題が起きるのか」という理由部分だけ解れば良いなら、それではさようならってことで構わないけど
問題解決のアドバイスを欲しいなら、ブックをロダにアップした上で、やりたいことを具体的に書きましょう。
110 :
名無しさん@そうだ選挙にいこう :2011/05/16(月) 12:34:09.79
えーと A1セルに数値を入れたらあちこちセル計算して 結果がC5セルに出てくるとします。 X=A1 Y=C5となるようにXY表を作りたいとき一番スマートな方法はどれですか? C5セルのやってることをスパッと関数化する奴があればいいんだけど・・・・
自分の頭で関数化するか シナリオの情報かな
シートを別々のウィンドウに分けて表示したいのですが どうやったらできるんでしょうか? 2003を使っています。2000を使っていたころは最初っからできていたと思うのですが・・
114 :
複乳 :2011/05/17(火) 01:35:05.66
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】フック ユーザーフォーム上のオブジェクトを動かす度にユーザーフォームが再描画されるのを防ぐため フックしてosからの15番メッセージを止めてみたのですがうまくいきません。 デバックもうまくできません。 福乳さんどうしたらいいですか!
116 :
複乳 :2011/05/17(火) 07:36:45.62
>>115 仮想PostMessage()だかSendMessage()を投げればいいんじゃないっすか
じゃなきゃhookしない
嘘ですhookの知識なんてありません
>>112 97は画面右下のセルに入力すると落ちる。
回避策は事前にスクロールして、
とにかく右下セルを触らない。
>>108 がこのバグのせいかどうかはわからんが
Windows7 Excel2010、Access2010 Access2010からVBAのDoCmd.TransferSpreadsheet acExport コマンド 、またはAccessのマクロ(VBAではなくてAccessのマクロ機能)で Excelにクエリの結果やテーブルのデータをエクスポートする処理があります。 ExcelにはAシート Bシート(こちらにクエリやテーブルのデータを出力) があり、AシートからBシートのセル参照を行っています。 規制がきつい・・・
119 :
118 :2011/05/17(火) 23:12:56.43
このような構成の時、AccessからExcelへエクスポート後、Excelファイルを開いても Aシートでセル参照していてもAシートの値が更新されないものがあります。 (エクセルファイルによって更新されたり・されなかったりします) Accessの出力方法の違いによって発生している訳でもありませんし、更新されるエクセルファイル・されないファイルの違いも特にありませんでした。 続きます
質問じゃなくて愚痴?
121 :
118 :2011/05/17(火) 23:14:59.25
エクセルの自動計算はONにしています。また、更新されないエクセルファイルでF9を押しても再計算されません。 ただし、ctrl+Alt+F9による強制再計算を行えば値が更新されます。 これを見ていると、Accessからのエクスポートでセルの値が更新されてもエクセルでは値の更新を検知?していないように見えるのですが、 対処方法をご存知の方はいませんでしょうか?
XP Excel2007 googleスプレッドシートのリスト表示が便利で重宝してますが、 同じことがエクセルでもできますか?
>>124 重ねることも重ねないことも出来るからお好きなように使いましょう
126 :
122 :2011/05/18(水) 08:46:55.70
>123 ありがとうございます!
見せたくないシートを非表示にしてブックの保護。 それと同時に見えてるシートの削除とか 複製は許したい。 そんなのできますか?
128 :
名無しさん@そうだ選挙にいこう :2011/05/19(木) 17:21:27.46
A1 Aグループ A3 Bグループ A5 Bグループ A7 Aグループ A9 Aグループ A11 Cグループ A13 Bグループ A15 Cグループ という感じにあり それぞれの箇所に入金があれば 入金のあったグループの件数がそれぞれ表示されるようにしたいのですが どうしたらいいですか? 例えば、A3とA13に入金あれば A20(Bグループ)に2件と表示させたいんです。
画面にエクセルの窓が1つしか表示できません。 新しいウィンドウで開いてファイルを切り替えても、同じ窓内で表示が 切り替わるだけです。 2003を使っています。どうすれば別々の窓に分けて表示できるのでしょうか?
132 :
名無しさん@そうだ選挙にいこう :2011/05/19(木) 20:29:47.68
すみません 教えてください 年が入ってるC列D列で2009年04月から2010年03月までを判断("2009" & "04"と処理します)して K列の数字をN列に出したいです。他の年月だと0を入れたいです。 関数でもVBA配列でもよく出来ません コードも書いたのに改行多すぎで書き込めないです。。。
>>132 C1に2009,D1に04 って入ってるってこと?
普通にN1に
=IF(AND((C1&D1)*1>=200904,(C1&D1)*1<=201003),K1,0)
ってことかいな?なんか違うか
>>132 =IF(YEAR(DATE(C1,D1-3,1))=2009,K1,0)
とかもアリじゃない かな?
135 :
132 :2011/05/19(木) 21:28:14.40
>>133 さん
>>134 さん
どうもありがとうございました。たぶん出来るとおもいますがちょっとてんぱってしまって
またのちほどきます。
136 :
132 :2011/05/20(金) 06:54:56.17
>>133 さん
今やってみました。まさに出来ました。
すごく助かりました。ありがとうございます!!!
!
泣きそう!
解らないので教えて下さい。例えば、一致条件で A1〜A6に1〜6までの値。 B1に2 C1に4 D1に6 E1に8 F1に10 G1に12 の値で、 B1の値が、A1〜A6に入力された値、どれかと一致すれば、 B2が○ C2が○ D2が○ E2が× F2が× G2が× となって、 B2に入れる式が =IF(ISERROR(VLOOKUP(B1,A1:A6,1,0)),"×","○") これだと出来るんですが、
B1 C1 D1 E1 F1 G1 1 2 3 4 5 6 B2 C2 D2 E2 F2 G2 2 4 6 8 10 12 B3 C3 D3 E3 F3 G3 ○ ○ ○ × × × この場合でやる、一致条件の式を教えて下さい。
=IF(ISERROR(VLOOKUP(B1,A1:A6,1,0)),"×","○") のアドレスと検索関数を無駄のない物に変えただけだが =IF(ISERROR(MATCH(B2,$B$1:$G$1,FALSE)),"×","○") じゃだめなの?
140 :
138 :2011/05/20(金) 14:53:53.40
>>139 出来ました、ありがとうございます。おかげでスッキリしました。
>>131 シートを分けて表示するのではなく、ファイルを分けて表示したいのです
エクセルの窓が1つしか表示できません。
7で2003を使っています。XPで2000を使っているときは
ファイル切り換える度に窓も分けて表示されていたのですが・・
すみません、自己解決しました
autosumしてあるのにいつの間にかセルの数値を変更してもautosumの値が 変わらなくなってしまいました。 試しにもう一度autosumの設定をしてみたらその時は正しい値が出ますが 数値を変更しても変わりません。 どうしたら直るか教えて下さいm(__)m
145 :
143 :2011/05/20(金) 19:50:21.41
2007です。
146 :
名無しさん@そうだ選挙にいこう :2011/05/21(土) 01:32:14.74
excelで減衰振動の片対数グラフを作りその数式を表示させたんですが 54.7e^-0.08xとかになって eの片にある、直線の傾きを表示させる方法を教えてください。
約100個のCSVファイルを1つのエクセルブック(100シート)にまとめて保存したいのですが どのようにすれば良いでしょうか?
>>145 Excleのオプション→数式→計算方法の設定→ブックの計算→自動
150 :
145 :2011/05/21(土) 05:27:26.69
>>149 ありがとう。直りました。
でも何で手動になっちゃったんだろ?
151 :
複乳 :2011/05/21(土) 05:31:33.83
152 :
150 :2011/05/21(土) 11:19:21.98
>>151 バグだったのか。
何か変な事したかと悩んだ。
>>148 マクロ使わないと無理ですか・・・
マクロさっぱりわからないんです。。。
>>153 うん、俺も昔はマクロわからなかった。
でもやりたいことがあって、それがマクロじゃないと出来ないと分かって
「マクロの勉強する手間」と「マクロ使わずに実現する手間」と「諦めることによる損失」
を天秤に掛けて、マクロ勉強することにした。
君も勉強してでも実現したいか、勉強するくらいなら諦めるか、自分の天秤に掛けて決めれば良い。
なんてもっともらしいことを言ってみるが、
>>147 を実現できるアドイン(マクロをまとめたもの)あるから
それ入れれば解決なんだけどね。まぁ使ってるExcelのバージョンすら書いてないから、
俺もアドイン名までは書かないが。
>>154 すいません。。。エクセルは2007です
VBAは以前からやりたいと思っていたのでこれをきっかけに勉強しようと思います。
かんたんプログラミングシリーズが評判良さそうなのでとりあえずそれを買ってみます。
ありがとうございました。
157 :
名無しさん@そうだ選挙にいこう :2011/05/22(日) 03:15:23.50
【1 OSの種類】 WindowsXP【2 Excelのバージョン】 Excel2002【3 VBAが使えるか】 はい(勉強中)【4 VBAでの回答の可否】 可【5 検索キーワード】 マクロ 文字列 結合など。 シート1の『〔○曜日〕』から『 /他』まで、といった感じで各曜日の文章を1セルにまとめ、シート2に出力したいですが、各週文章数はランダムのためそれに対応できるのが良いです。あと、A1の文字列から日付を抽出してシート2に出力したいです。 -----シート1----- A 1 5月9日(月)〜5月13日(金) 2 "〔月曜日〕" 3 "●文章1" 4 " /他" シート1の情報をシート2に以下のように出力したいです。だれか教えてください。 -----シート2(別シート)----- A B 1 5/9 "〔月曜日〕●文章1 /他" 2 5/10 "〔火曜日〕●文章1●文章2 /他" ・・・ 5 5/13 "〔金曜日〕●文章1●文章2●文章3 /他"
マルチか せめて向こうの質問を取り下げてから来れば こっちは丸投げOKだから答えて貰えたのになぁ
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】Excel2007 ファイル 結合 xlsx シート1に名前 住所 電話番号・・・・というように住所録があります。 同じフォーマットで複数ファイル(50000ファイルくらい・ファイル名はランダム)あります。 これを一つのファイルかつシート1に追加していくようにして結合したいのですが、いいツールはないでしょうか。 コピペだと時間がかかりすぎて・・・2003までのxls形式だと見つかったのですが、xlsx形式の結合ツールが見つけられなくて..... よろしくお願いします。
【1 OSの種類 .】 Windows vista home 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 microsoft excel for windows は動作を停止しました こんにちわ、宜しくお願い致します。 昨日から、エクセルのアイコンをクリックして、起動させると即フリーズというか 上の microsoft excel for windows は動作を停止しました のメッセージがでて キャンセルしかできなくなります。 エクセルで作ったファイルをクリックしても、スタートメニューから立ち上げても同じです。 試しにsafeモードで立ち上げると、普通に使えます。 何が問題でしょうか・・・・ 不具合と直接関係はわかりませんが、グーぐるアースを インストールし、その後アンインストールしました。
161 :
160 :2011/05/23(月) 11:16:05.83
再インストール、windowsの復元、及び Excel.xlb ファイル XLStart フォルダ Excel.pip ファイル のリネーム等も試しましたが駄目でした・・・
162 :
160 :2011/05/23(月) 15:45:33.76
Erasecd2.exe も試みたけど駄目でした
おそらくExcel2000はVistaに非対応なのでしょう。 Excelのアップグレード(バージョンアップ)をお勧めします。
164 :
160 :2011/05/23(月) 16:02:51.79
vistaで何年も使ってきたんだけど急に使えなくなりました
非対応ってのはそういうものさ 絶対に使えないわけじゃないけど、いつ不都合が出てもおかしくない とりあえず、OSのクリーンインストールからExcel再インストールしてみたら? それが面倒とか言い出すなら(゚听)シラネ
166 :
名無しさん@そうだ選挙にいこう :2011/05/24(火) 14:34:56.88
年の列 月の列 1999 Jun 2001 Feb .... となってるものを 1999年6月 2001年2月 と変換するにはどうすればいいのでしょうか
>>167 A列に年、B列に月名が入ってるとして
=TEXT(DATEVALUE(A1&"-"&B1),"yyyy年m月")
169 :
複乳 :2011/05/24(火) 17:53:35.38
>>167 C1=A1&"年"&IF(ISERROR(FIND("Feb",B1)),"","2月")&IF(ISERROR(FIND("Jun",B1)),"","6月")
2月と6月しかやってないので他の月も
&IF(ISERROR(FIND("Jun",B1)),"","6月")
辺りをテキトーに変えて追加しておいて
>>168 AとB、逆じゃないの?
英語圏だと「24 May 2011」って風に「日 月 年」の表記になるから
年と月だけの場合でも月が前
=TEXT(DATEVALUE(B1&" "&A1),"yyyy年m月")
これで
>>169 みたいに無駄に冗長で面倒な式使わなくても、全ての月に対応できる
171 :
複乳 :2011/05/24(火) 18:12:59.55
DATEVALUEって"jun"でも通用したのか、知らなかった。すまん 問題は月の列が"jun"なのか書式設定でjunと表示してるかだね
> 書式設定でjunと表示してる そんなのは問題にならないし、そうだとしたらこんな質問してこねーだろ 書式設定でってことはシリアル値があり、それを表示形式使って Jun(mmm)という特殊な表示にするってことをやってるわけだから、それが出来て 1999年6月(yyyy月m年)という基本的な表示にするってことが出来ないわけがない TEXT関数でやるなら =TEXT(B1,"yyyy年m月") こんだけ なんの問題にもならんw
173 :
複乳 :2011/05/24(火) 18:43:06.27
>そうだとしたらこんな質問してこねーだろ 長年エスパーやってきたけどこういう思い込みは良くないよ
174 :
複乳 :2011/05/24(火) 18:44:21.70
後は回答者の結果待ちだの
質問者じゃなくて?
176 :
複乳 :2011/05/24(火) 18:51:31.57
そうだ もうだめだ
>>173 思いこみは良くないけど、その後の理由まで読むと172の言うことには納得せざるを得ない。
だってSUMIF知ってる奴がSUM知らないとか、ReDim Preserve知ってる奴がReDim知らないとか、
整数商\演算子と除余Mod演算子知ってる奴が除算/演算子知らないとか、そういうレベルだもん。
これは無いと見るのが普通じゃね?
> もうだめだ そんなことないよ 「もう」じゃなくてダメなのは以前からずっとじゃんw
ひでぇ、けど当たってる
180 :
複乳 :2011/05/24(火) 19:48:37.71
>>177 もちろんある程度、程度を推測した上でならその推測で間違いないと思う
でも初心者は何を勘違いしてるか分からないんだよ
例えばある初心者が光回線導入したんだけど、
これでPCのクロック数があがると思っていた
ネットが早くなる、の早くなるという部分で色々想像していたようだ
んなわけねーだろ、と思っても機械音痴には常識が通用しない
君はSUMIF知ってる奴がSUM知らない奴がいるわけない、と思ってるようだが
俺の中ではいなくも無い
どっちが正しい訳でもないと思うし、一般的にも少ないだろう
でもそういう人ばっかりだと何がわかってないかもわかってない初心者は上に上がれないんだよね
181 :
複乳 :2011/05/24(火) 23:25:38.91
等と意味不明な供述をしており
>>159 いちどテキストに書き出してからインポートは?
# なんでExcelのままインポートできないのか、不思議だ。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 A列に[売り切れ] という文字が入っていた場合 C列に[未定] という文字を。 A列にそれ以外の文字が入っていた場合は、C列には何もしない(C列にはすでに他の文が入ってるセルがあるので) こういう事をしたいのですが、色々ググってもやり方が分かりません;
>>183 C列に数式入れて良いなら簡単だけど
> C列にはすでに他の文が入ってるセルがあるので
を保持したまま実現するなら、VBA使わないと不可能
まぁ、A列に[売り切れ] という文字が入っていた場合 D列に[未定] という文字を。
A列にそれ以外の文字が入っていた場合は、C列の内容を表示するってならVBA無しでも可能だけどな
>>185 ピボットならレポートのレイアウトを表形式にして人口を降順にすりゃ、市町村でトップ50にすればよい。
>>185 検索で出てきたこの方って自分じゃないの?
どうせ否定するだろうが、ピボットテーブル以外じゃ並べ替えと作業列とフィルタオプションでもできるな。
都道府県を最優先するキー、人口を次に優先するキーで降順に並べ替え
D2に=IF(A2<>A1,1,D1+1)としてD列が50以下を抽出すりゃよいが、もし50番目が同じ人口で複数あると具合が悪いから
作業列をもう一つ用意してE2に=IF(C2<>C1,D2,E1)としてE列が50以下を抽出。
189 :
185 :2011/05/25(水) 15:18:35.07
5年越しの自演って凄く壮大ですね…
当然ながら本人じゃないですけど、まぁ証明する手立てもないので
どっちでもいいですw
無事に
>>185 はできました。
値フィルタという便利な機能があるんですね…
皆さんありがとうございました。
2006年の記事に対して自演を疑う
>>188 ワロタ
今頃顔真っ赤にしてそうw
192 :
名無しさん@そうだ選挙にいこう :2011/05/25(水) 19:45:21.78
winXP Excel2007です。 4000kbぐらいのエクセルブック内に15ぐらいのシートがある。 で、それらのシート間にVLOOKUPやSUMIFSやSUMPRODUCTが張り巡らされていて、構成としてはデータベースシート×4・集計シート×10・総集計シート×1となってる。 そんで定期的にデータベースシートを書き換える必要があり、その書き換えによる再計算が非常に時間がかかる(タスマネ見るとCPUが振り切れてる)。 ↑このファイルはネットワーク上のサーバに保存していて、そこにアクセスして作業してんだけど、 これをCドライブに移して端末内で作業したら再計算速くなるか?
計算は速くならない 開いたり保存したりは速くなるが
Excel2003でXPです。 グループ化やリストや年度フィールド一列追加等を使わずピボットテーブルの4月からの年度ごとで データを並べたいです。 1月開始のデータで1月から3月のセルを後ろにドラッグしても同じ年の中で並びが変わるだけです。 なんか、簡単に出来ないものでしょうか。 ちなみに私のExcelバージョンだとグループ化しようとすると 先頭の値と末尾の値までは出ますが 単位(B)というのが一つしか出ず、デフォルトが『0.1』です。 月・年や四半期とか出ません。頭にきます。
>>189-191 解決してないし、5/13しか目に入らなかったよ
メガネ買わなきゃだめだな
197 :
194 :2011/05/26(木) 18:52:51.06
>>196 さん
レス&リンクありがとうございます。
リンク先も以前見ています。
ただ、実際4月始まりでグループ化、列追加等の処理をしないで作成したと思われる
前任者のエクセルファイルがありまして、え!簡単に出来るんだ?って思ったのです。
そのファイルをいろいろイジってみて、やはり自分ではわからなかったので
こちらに書き込みました。
もしかしたら上の方法以外の処理をしているのかもしれませんね。
もうしばらく調べてみます。
どうもありがとうございました。
198 :
196 :2011/05/26(木) 20:09:20.16
199 :
194 :2011/05/26(木) 21:22:43.81
>>198 さん
いや、それも確認しましたがリストには無かったです。
ユーザー設定リストに新規インポートでもすると、そのデータがリストに残りますよね?
そして、そもそも並び方を変えただけでは、例えば2010年1月のデータは2009年度のほうにいかないですよね。。
2009年1月、2009年2月、というリストを作るのかな?
4月 5月 6月 。。。1月 2月 3月
2010年
2009年
という感じで2年間のデータになっているんですが
たぶんネットで出てるどれかの処理をしているんだと思います。
ここを覗いている人達より高度な技をもってるとは思えないし。。
何度もありがとうございました。
200 :
複乳 :2011/05/26(木) 22:57:15.43
その4月の表示形式はどうなってるんだろう
202 :
194 :2011/05/27(金) 07:43:35.67
>>200 複乳さん
そうです 2003だと選択肢出ないんです。。。
そのリンク先も見てはいましたが。。
>>201 さん
表示形式は数値とか文字列ではなく標準になってます。
見た目だと04 05 06。。。 10 11 12です。
>194,202 その前任者、まさかのVBA使いだったりして データのあるブックと、マクロブックが別だと「痕跡」は残りませんね
今現在全て手書きで日々の売上をコクヨの金銭出納帳に記入してます Excelでこれらの会計管理を入力から上記用紙に出力、DB化による検索まで一括で管理したいんですが 可能でしょうか
205 :
複乳 :2011/05/27(金) 16:16:29.39
>>204 可能
「テンプレート エクセル 売上」
なんかで検索すれば色々テンプレートも見つかるよ
もし作るなら正規化って概念はちょっとだけ勉強しておいたほうがいいかも
206 :
194 :2011/05/27(金) 18:37:46.38
すみません、今日やっと判明しました。 そのデータはアクセスクエリから抽出してるんですが そこでカレンダーマスタを作ってデータにかませてました。。。 アクセスは初歩もいいところなんでそこまで気がつきませんでした。 皆様本当にお騒がせいたしましたm(。_。;))m
207 :
194 :2011/05/27(金) 18:39:09.81
補足:アクセスから外部データとして引っ張ってきてるということです。 重ね重ねすみませんでした。
209 :
名無しさん@そうだ選挙にいこう :2011/05/28(土) 09:10:21.32
win7 office2010 COUNTIFの使い方で判らないとこがあります。 例えばA1〜A5まで指定する方法というのは判るのですが A1+A2+A4といったように一部のセルだけを選んで指定するには どうしたらいいですか?
セルの参照で質問です。 shieet2にsheet1のデータを表示したいです。 表示の仕方は下記です。 sheet1 sheet2 A1セル → B1セル A6セル → B2セル A11セル→ B3セル A16セル→ B4セル : : ※バラバラの(間隔の開いた)データを別シートで集約したいのです。 調べてINDIRECTを使うのかなと思いましたがうまくできませんでした。 よろしくお願いします。
>>209 なぜA3を省くのか、その理由を条件として記述してみましょう。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 Vlookup 逆 相手先 日付 売上金額 A商店 2/1 300 B商店 2/20 500 B商店 2/25 390 A商店 3/5 150 C商店 4/3 120 というような表からA1に相手先名を指定したらB1に直近の売上金額が表示されるようにするにはどうすればいいでしょうか? 日付が降順になっていればVlookupで出来ると思うんですが昇順に並んでいます。
>>209 離れたセルを指定する方法はありません
=COUNTIF(A1:A2, 条件 )+COUNTIF(A4, 条件 )
みたいに別々に調べて足すのが基本です
配列などを使う方法もありますが、あとで式を修正するのがちょっと面倒になります
>>210 セル名の前にシート名を書けば、別のシートからデータを持ってくることが出来ます
=Sheet1!A5
一度に入力する方法としては、最初の2セルに数式ではなく「A1、A6」とだけ入力し、オートフィルで増やしてから
「A」を「=Sheet1!A」に置換します
INDIRECTを使う方法だと、
=INDIRECT("Sheet1!A"&ROW()*5-4)
となります
215 :
複乳 :2011/05/28(土) 15:42:51.83
>>212 相手先〜売上がC列-E列
B1=INDEX(E2:E6,MATCH(SUMPRODUCT(MAX((C2:C6=$A$1)*(D2:D6))),D2:D6,0),1)
216 :
212 :2011/05/28(土) 16:58:05.77
217 :
名無しさん@そうだ選挙にいこう :2011/05/28(土) 20:46:59.19
質問です。xp 2003 です。 A1に13.000ってあるとします。 B2に 合計 \13.000− ってやりたいのですが 合計 \13000 ってなってしまいます。 13.000って三ケタに区切りを入れて見やすくしたいのですがどうすればいいですか? B2に 合計 \13.000− が理想です。 お願いします。
218 :
複乳 :2011/05/28(土) 20:52:00.11
219 :
217 :2011/05/28(土) 20:57:02.92
>>218 サンクス
ユーザー定義って自分で出来るの知らなかった。とにかくありがとう。
"合計 "\#,##0-;"合計 "\-#,##0-
221 :
217 :2011/05/28(土) 21:12:32.76
>>220 ありがとう その合計の後の空白がどうやるか迷っていましたw
"合""計"" "これだと出来なくてくっついていて質問しようと思っていました。
ありがとうございます。
3桁の区切りはピリオドじゃなくていいの?
ピリオドじゃ小数点に見えるからまずいだろよ
224 :
名無しさん@そうだ選挙にいこう :2011/05/28(土) 22:23:12.89
vista 2007 です。 横幅のコピーは列幅を選んで貼り付けで出来ますが、 縦の幅はどうやればいいんでしょうか?
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】エクセル 特定のシート ファイル出力 複数のシートがあるエクセルブックの中で、特定のシートを 指定してcsvファイル出力する方法を探しています。 なお、特定のシートを新規ブックにコピーして、csv出力した後に 新規ブックを閉じるコードで、目的は実現できるのですが、 目的のシートがたくさんあった場合、処理が遅く感じてしまい、 新規ブックを作成することなくできれば早くなるのかな?と思い 探っているところです。
>>225 すみません。
質問にある大切な特定シートの選択(質問を見落としました)の部分は
入ってませんでいた。
228 :
名無しさん@そうだ選挙にいこう :2011/05/29(日) 12:46:00.81
境界ダブルクリックでシート全体を自動で列幅を最適させると縮まらない空白の列があります。なぜなのですか?
>>225 質問の意図がよくわかりません
もともとcsvファイルはシート単位でしか作れません
その「特定のシート」をアクティブにしてから普通にcsv形式で保存するのと、
あなたのやりたいこととの違いはなんでしょうか
>>226 ありがとうございます。
ws.SaveAsという部分は参考になりました。
>>230 例えば、1,2,3という3シートを持つブックで、下記のコードを走らせると、
元のブックはそのままで、3シートのcsvファイルを作成することができ、
結果としては問題ないのですが、処理中に新規ブックがチラチラし、
もしかしたらこのせいで遅いのかな?新規ブックを作成しないで実現できる
方法があったらそっちの方が早いのでは?と思ったのです。
Application.DisplayAlerts = False
Dim i As Integer
For i = 1 To 3
Sheets(i).Copy
ActiveWorkbook.SaveAs Filename:= _
Application.ThisWorkbook.Path & "\" & ActiveSheet.Name & ".csv", FileFormat:=xlCSV, _
CreateBackup:=False
ActiveWorkbook.Close
Next i
Application.DisplayAlerts = True
>>231 ファイルの保存機能を使わずに、VBAだけでCSVファイルを作ってしまうという手もある
データの内容によってはちょっと処理が面倒になるけど、セル内改行や、文字列と数値が紛らわしいデータ、
例えば郵便番号や電話番号などがなければすぐにできる
233 :
三橋 :2011/05/30(月) 04:55:29.19
仕事で使用するデータをエクセルでデータベース化して、その後サーバにアップして 携帯で参照できるようにしたいです。 データ自体は、たいしたものではないのでそれほどセキュリティーに大してはきにしていません。 手軽に実現するには、どういった方法があるでしょうか?
234 :
三橋 :2011/05/30(月) 04:57:30.89
データベースといっても、計測値と加工設定値20項目を入力して、 品種ごとにそれらの計測値と加工設定値が検索できればよい、簡素なものを求めています。 そもそも、このご時世に加工データをノートに記録しているような労働環境なので 手軽にノートで検索できればと思ったのです。 環境は、ウィンドウズ7、office2010、サーバは無料レンタルでもと考えております。
>>233-234 Microsoft Office Live Workspace使えば可能かも。
236 :
問題君 :2011/05/30(月) 08:13:32.84
>三橋さん 以前バイトしていた倉庫で似たようなことをやっていましたが ある日やって来たお偉いさんが 「フォークマンが端末ばっかいじってる」 と文句を言ったため廃止になりました。 また実際サボらせる原因にもなります。
>>233-234 エクセルでデータベース作るところまではスレの範疇だが
携帯キャリアから参照出来るようにする部分はスレ違い
通信や、リクエスト、レスポンス等に関しては
そっち系の板で聞くように
>>234 php エクセル で検索すればそれっぽいのがでてくる
239 :
名無しさん@そうだ選挙にいこう :2011/05/30(月) 22:03:00.57
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 SelectedItems フォルダ名の取得の仕方がわかりません。 下のマクロで一応取得出来たんですが、ダイアログのところでキャンセルを押すとエラーになってしまいます。 どうやるのが一般的なんでしょうか?またエラーが出なくするにはどうすれば? Sub test() With Application.FileDialog(msoFileDialogFolderPicker) Show Range("a1") = .SelectedItems(1) End With End Sub
.Showの返り値を使う
>>241 if .show=ture then〜でエラー回避できました
ありがとうございました
毎日ブックコピーして作って、 それぞれのデータをひとつのブックで管理したいので 1日のデータはまとめの1日のシート、2日のデータはまとめの2日のシート にVBAで貼りつけたいのでやり方を教えてください。 よろしくお願いします。
>243 >1-5 を見てください
質問です。 0.6 1.2 1.6 2.4 3.1 という累計から、例えば、0.6と1.2の間に「1」があるかどうか知りたいのです。 そんなことが出来る関数はありますか。
246 :
名無しさん@そうだ選挙にいこう :2011/05/31(火) 23:50:19.63
>>245 よくワカランけど、こういうこと?
A B
1 1
2 0.6
3 1.2 ○
4 1.6 ×
5 2.4 ×
6 3.1 ×
B3
=IF($B$1="","",IF(AND($B$1>A2,$B$1<A3),"○","×"))
ズレたらスマン
>>246 すみません。作業の予定表です。
1日に出来ることを1とみて、累計にした数字が作業事の時間量です。
作業 作業時間 1日目予定 2日目予定…
累計
A 0.6 ○
B 1.2 △ ○
C 1.6 ○
D 2.4 △
E 3.1
といった表を作りたいのですが、出来ますかね
249 :
複乳 :2011/06/01(水) 00:08:52.48
>>245 rounddownが切り捨て、roundupが切り上げ
これをifの条件にするかな
あとは色々ありすぎてわからん
整数を知りたいのか、1だけでいいのか、2以上離れた場合はどうなのか
250 :
複乳 :2011/06/01(水) 00:16:55.47
名無しが一斉に逃げる気配がした
251 :
複乳 :2011/06/01(水) 00:27:16.58
>>248 結論から言うと、出来る
が、かなり面倒な上に
妙に神経も使うから作らないけど、だいたいこんな感じ。
式は全然足りないけど、式もイメージ
ttp://www1.axfc.net/uploader/Img/so/117052.jpg ○と△は見た目でわかるだろ、と思うけど
どうしてもほしいなら数値データと別に見た目だけの表を作ったほうがいいと思う
で画像にも書いてあるけど
仕事のある時、無いとき、昨日の続き、明日への持ち越し、
そしてそれぞれの最終段の時の条件分岐をifか何かで用意すれば完成
多分やらないほうがいいんじゃないかなぁ、という感じはする
複乳はもうちょっと画像が簡単に見られる場所に上げてくれ
253 :
245 :2011/06/01(水) 00:34:33.97
>>247 ので、出来ました。
お騒がせしました。ありがとうございました。
254 :
複乳 :2011/06/01(水) 01:05:26.30
ええんかいっ
>>252 俺も同感だけど、アップローダーすぐ潰れるからなぁ
長期で安定してるとこないかな。dotupもそろそろ限界っぽいし
255 :
問題マン :2011/06/01(水) 01:35:17.24
福乳さんどっかでVBで伺かみたいなの作るとか言ってなかった?
256 :
問題マン :2011/06/01(水) 01:35:45.11
もっと香ばしいキャラにしとくべきだったぜ
>>237 ちょwww完全に人違いだぜ!
俺はお子様言語しかできねwww
>>239 みんなからの心の籠ったレスがうれしいからだぜー☆
258 :
複乳 :2011/06/01(水) 02:50:46.82
な、なんだって・・・
折角だし答えておくと
>>255 つくろうと思ったら既にあったので
基本機能ちょこちょこ触ってみて飽きました
複乳 問題マン
260 :
233 :2011/06/02(木) 07:05:28.48
以下はフォルダ内のデータを転記するためのマクロの一部なのですが、wbには開くためのパスワード"password"が設定されています。 ブックの"password"をマクロで入力し開くにはどうしたらよいか教えてください。 Dim fn, wb, myPath myPath = ThisWorkbook.Path & "\" fn = Dir(myPath & "*.xls") Set wb = Workbooks.Open(myPath & fn) ' ↓こんな感じかと考えながらもうまく動作しないです。。 Workbooks.Open Filename:=wb, Password:="password" プログラマー板から来ました お願いします
【ソフト名】 エクセル2003 【使用しているOS】 xp 【質問内容】 複数シートの同一セルの値を、集計シートに並べたいのですがやり方が分かりません。 くし刺しで和を出すことは検索したらやり方が沢山見つかるのですが。。。 具体的には1日1シートで日計表をつくっています。 その中に本日在庫を表すセルがあります。 それを集計シートに並べ、日毎の在庫額の変動状況を把握したいのです。 宜しくお願いします。
263 :
名無しさん@そうだ選挙にいこう :2011/06/02(木) 13:36:40.22
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2007 【3 VBAが使えるか .】 初心者なのでわかりません 【4 VBAでの回答の可否】 同上 エクセル初心者です。 アクティブセルというのでしょうか。 +カーソルは表示されていいます。 入力する際にクリックしても、いつも表示されていた枠の囲いが表示されなくなりました。 入力やコピーなどをするのに大変不便な状況です。 どなたか、表示させる方法を教えて下さい。 宜しくお願い致します。
266 :
名無しさん@そうだ選挙にいこう :2011/06/02(木) 14:21:19.54
あげ
267 :
名無しさん@そうだ選挙にいこう :2011/06/02(木) 15:18:38.49
>>265 左上エクセルのマークからオプションにいきましたが、表示の項目が見当たらなかったです・・・。
困った。
268 :
名無しさん@そうだ選挙にいこう :2011/06/02(木) 15:33:10.64
>>264 そうです私です
この板の存在をしらず、あちらで聞いていました。
269 :
262 :2011/06/02(木) 15:37:29.18
もう一度投稿しなおします。 お願いします。 【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 エクセル くし刺し 集計 シート 並べる 複数シートの同一セルの値を、集計シートに並べたいのですがやり方が分かりません。 くし刺しで和を出すことは検索したらやり方が沢山見つかるのですが。。。 具体的には1日1シートで日計表をつくっています。 その中に本日在庫を表すセルがあります。 それを集計シートに並べ、日毎の在庫額の変動状況を把握したいのです。 1シートずつ計算式内で指定していかなければならないのでしょうか。 宜しくお願いします。
こんなことしたいのですが 何で作ればいいのでしょうか outlookのカレンダー内の特定キーワードを含むもののみを取り出して excelの既存のフォーマットの空欄に入力していく excelの表は一カ月でうまるようになってるので、うまったら指定したメールアドレスに自動送信
>269 合計を出したいシートで次のような作業をすると、計算式を「計算式で作る」ことができます。 前提 A2から下方向に元となる(1日分のデータを記録するシートの)シート名 B1から右方向に集計したい元となるシート上のセル位置 1 B2セルに ="="&$A2&"!"&B$1 と入れて、下方向にフィルコピー(合計31セル分) 2 B2からB32セルを選択した状態で右方向に必要な列までフィルコピー 3 画面上には計算式が見えています。これをコピー、「値貼り付け」します。 4 値貼り付けした範囲をひとつずつ[F2]、「Enter」(または[Tab])としていくと、 今まで見えていた式が参照値に変わっていきます
パソコン内のエクセルファイルをあるシートにハイパーリンクを用いて目次のようなものを作っています lこの目次作成を簡単にしたいです 「あるフォルダの中のエクセルファイルをまとめてハイパーリンクで目次を作成する」方法を教えてください リンクはエクセルファイル(ブック)に対してだけで構いません ブック内のシートやシート内のある場所にリンクさせる必要はありません よろしくお願いします 【1 OSの種類 .】 WindowsXPsp3と7 【2 Excelのバージョン 】 Excel2000と2003と2010 どれでも構いません 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 目次作成 ハイパーリンク 自動
274 :
名無しさん@そうだ選挙にいこう :2011/06/02(木) 18:53:54.90
ピボットテーブルって記号をそのまま値に持って来れないの? 平均だとか合計だとかで数字なっちまう!
>>273 http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_080.html あとは、B列にハイパーリンク関数でも使うか
マクロを書き換えるか
それぐらいは自分で
わからんかったらまた聞いて
1/2
Sub a()
Const cnsTITLE = "フォルダ内のファイル名一覧取得"
Const cnsDIR = "\*.xls"
Dim xlAPP As Application
Dim strPATHNAME As String
Dim strFILENAME As String
Dim GYO As Long
Set xlAPP = Application
' InputBoxでフォルダ指定を受ける
strPATHNAME = xlAPP.InputBox("参照するフォルダ名を入力して下さい。", _
cnsTITLE, "C:\") ' @
If StrConv(strPATHNAME, vbUpperCase) = "FALSE" Then Exit Sub
' フォルダの存在確認
If Dir(strPATHNAME, vbDirectory) = "" Then ' A
2/2 MsgBox "指定のフォルダは存在しません。", vbExclamation, cnsTITLE Exit Sub End If ' 先頭のファイル名の取得 strFILENAME = Dir(strPATHNAME & cnsDIR, vbNormal) ' B ' ファイルが見つからなくなるまで繰り返す Do While strFILENAME <> "" ' C ' 行を加算 GYO = GYO + 1 ' 先頭は1行目 Cells(GYO, 1).Value = strFILENAME ' D ' 次のファイル名を取得 strFILENAME = Dir() ' E Loop End Sub
278 :
名無しさん@そうだ選挙にいこう :2011/06/02(木) 20:36:06.32
>>275 すいません
アルファベットを入れた列があるんです。
列ラベルを日付にして、それに対応するもの並べたいのです
【1 OSの種類 .】 XP/OSX 【2 Excelのバージョン 】 Excel2003/2008forMac 【3 VBAが使えるか .】 可 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 エクセル、文字 複数、置換 例えると シートAのa1に”東京”b6に”都”、c3に”港区”とバラバラに存在して 別のブックに行に東京都港区とまとめているんですが、 B、Cのシートにも同じ文字列があります(一度使用した文字列は今後使用しません) シートA、B、Cの中にある 同じ文字を一度に削除(空欄として置換)する為には シート事に抽出→置換をするしかないのでしょうか? (ブック事できたらもっと嬉しいですが…)
>>276 ほぼ答えなレスを参考にあとは自力でなんとかします
ありがとうございました
ただいまモニタとにらめっこ中です
281 :
複乳 :2011/06/02(木) 22:33:33.38
>>279 なんかよくわからんけど、
シート見出しをctrl押しながら選択していけば複数のシートで同じ作業ができる
その状態で置換
282 :
名無しさん@そうだ選挙にいこう :2011/06/03(金) 01:45:53.16
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 簡単なものなら・・ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 ピボットテーブル 絞り込み -------------------------------------------------------- 元データ(同じ人がテストを何回も受けている(10回以上で上限なし) 県名 人名 国語テストの点数 算数テストの点数 ・・・ いつ受けたか A県 ○さん 60 70 1月 A県 ○さん 90 80 2月 : : A県 △さん 50 50 9月 : : B県 □さん 80 50 10月 : : B県 ●さん 70 90 12月 B県 ●さん 40 80 1月 : : 実際にはきれいにソートはされていません。 --------------------------------------------------- これをピボットテーブルのレポートフィルタで人ごとに集計をしたい (人を選んで、各テストの平均点・分散・テストを受けた回数、時系列推移をみたい。) のですが、人を選ぶときに、入っている莫大な数の人名から選ぶため、探すのが難しいです。 所属=県で絞り込んだ後、人の絞り込みをしたいのですが、レポートフィルタを二つ設定しても連動しないため、 「県」を一つに指定しても、「人」のレポートフィルタの選択肢が狭まりません。。 なにかスマートな解決方法はないでしょうか? 県-人名の所属データは別にはない状態です。 (もし使うとしたら、元データから新たに作らなければなりません。) よろしくお願いします。
>>282 まずは県と人名だけでピボットテーブルを作れば所属データは一瞬でできるんじゃない?
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 否 関数についてです。1日おきにセルに数字を出すにはどうすればいいのでしょうか? 注文書を作っています。例えば今日は注文するけど、明日はなし。明後日はあり。 という場合の関数を教えてください。今は注文しない日は修正ペンで消しているので不便です。 宜しくお願いします。
286 :
複乳 :2011/06/03(金) 17:29:45.65
>>285 一行開けない場合は
A3=開始日付
A4=A3+2
一行開ける場合
A3=開始日付
A4=IF(MOD(ROW(),2)=0,"",A2+2)
>>285 数字を出すってどんな数字を出したいのですか?
あと、どんなレイアウトでやってるのですか?
4/1…1 4/2… 4/3…1 数字って書いてるところみると日付は全部入ってて注文個数を飛ばしでいれたいのかな?
例えば
>>288 のような感じでA列に日付が入ってて一日おきに”1”という数字を入れたいとかだと
日付のシリアル値を参照して偶数・奇数別に空欄と”1”を割り振る、
=IF(A1=ODD(A1),"1","")
などが考えられるけど。・・・単純に一日おきでいいの?(年中無休?)
290 :
285 :2011/06/04(土) 08:06:01.47
説明不足で申し訳ないです。 注文書は業者に送るFAXです。毎日その業者には注文はするのですが、 ある商品だけが1日おきの注文になります。 FAX注文書はexcelで作り、毎日数量を手入力しています。 りんご 1コ みかん 1コ みたいな感じです。ちなみに年中無休です。宜しくお願いします。
291 :
複乳 :2011/06/04(土) 09:21:23.22
>>290 あぁ、そういう意味か・・
注文書は当日に作るってことでいいのかな
偶数の日だけ表示なら
=IF(MOD(TODAY(),2)=0,"りんご","")
奇数の日だけ表示なら
=IF(MOD(TODAY(),2)=1,"りんご","")
292 :
エスパー :2011/06/04(土) 10:29:07.49
日がたつに連れて勝手に表が伸びるってことかも?
エクセル2003です。マクロで何枚か連続で印刷をする際、「××を印刷しています」という表示がでないようにしたいのですが(画面がチラチラするので)、うまくいきません。次のやり方のどこがおかしいでしょうか? Sub test() Application.Screenupdating = false (印刷処理) Application.Screenupdating = true End Sub
294 :
大門さん :2011/06/05(日) 07:57:16.17
>>293 Screenupdating = false はダイアログやユーザーフォームには効かないようです。
イベントを無効にするやつをお試しください。
それでダメだったらウィンドウロック?だかのAPIを使うか
もしくはフック乳って人にサブクラス化について聞いてみるとよいでしょう。
295 :
名無しさん@そうだ選挙にいこう :2011/06/05(日) 17:37:38.35
=IF(A2="あああ","○","×") みたいには出来るのですが たとえば A2に"あああ","いいい","ううう","えええ","おおお" みたいにいずれかが入っていたら真、いずれもなければ偽ってしたい場合 ネストするしかないのでしょうか? あと A2に"あああ"とC2に"いいい"で二つとも真の場合は○としたい場合 IF(A2="あああ",IF(C2="いいい","○","×"),"×") としているのですが、これが最良の方法なんでしょうか?
>>295 なにをもって最良の方法というか知らないけれど
論理関数の AND 又は OR を使う手もある
後者だと
=IF(AND(A2="あああ",C2="いいい"),"○","×")
297 :
複乳 :2011/06/05(日) 18:07:43.92
>>295 =IF(A2&C2="あああいいい"),"○","×")
とかも
あんまり量が多いなら、表を作ってvlookup辺りで値を引っ張ってくるとか
それだと A2に"あああい"とC2に"いい"や A2に"ああ"とC2に"あいいい"や A2に"あああいいい"とC2は空セルなどの場合、 条件とは一致してないのに○になっちゃうぞ 相変わらず複乳は抜けてるなぁ
299 :
名無しさん@そうだ選挙にいこう :2011/06/05(日) 19:24:31.82
それだとA2が“ああ”でB2が“あいいい”のときにおかしくなっちうの☆
300 :
複乳 :2011/06/05(日) 19:34:57.54
本当だ みんなすごいね♪
みんながスゴいんじゃない、おまえがショボいだけ こんなの、ほぼ同時に同じ内容の指摘が入るくらいで、誰でも気付くことだ 複乳は知識はそこそこあるが、如何せん思考力、応用力、判断力が無さ過ぎる いわば、学校のテストではそこそこの点数取れるが、社会に出たら使えないタイプ
ある程度入る文字の制約が予測できる上での発言だと思う もちろんフック乳も最初から分かってるし 質問者も応用して使ってねって言われてることはわかってるよ 唯一何も分かってないのは右も左も見えずにプギャーしてる人
だとしたら、本人が > 本当だ なんて言うわけが無い > 唯一何も分かってないのは右も左も見えずにプギャーしてる人 (キリッ! とか言ってる奴が、一番右も左も見えてない
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 否 関数で質問です 野球のゲーム差を表示したいのですが勝率で首位を判別してそのチームの勝数と負数を出す関数があれば教えてください。 勝率と勝数、負数は別で表示していますのでそれを使う関数でお願いします。
>304 勝率、勝数、負数の一覧表があるのなら、勝率で並べ替えてみるとわかるけど 同じ勝率で勝数、負数が複数通り該当する場合があるときはどうするの? 例:6勝4敗=12勝8敗=18勝12敗・・・・・
306 :
305 :2011/06/06(月) 10:36:42.53
>304 ちょっと勘違いしてた。 同率首位は考慮しないということで簡単に 6球団がならんでいるとして、A列から右にチーム名、済んだ試合数、勝数、負数、 引き分け試合数、勝率が並んでいるとして、勝率で並び替えることなく首位チームの 勝数、負数を出したいということなら、 =INDEX(A2:D7,MATCH(MAX(F2:F7),F2:F7,0),1) 首位のチーム名 =INDEX(A2:D7,MATCH(MAX(F2:F7),F2:F7,0),3) 首位チームの勝数 =INDEX(A2:D7,MATCH(MAX(F2:F7),F2:F7,0),4) 首位チームの負数
教えてください。 マウスを使わず行選択をするには“Shift+space”ですよね。 その状態で、次の行に行きたい時はどうすれば出来ますか? Shiftを押したまま複数行にするのではなくて、 一行ずつ行選択の状態のまま上下に移動したいんです。 文で説明すると難しく聞こえますが、中身を移動したいわけではなく、 ただ選択状態を行選択の状態で上下したいということです。 いろいろ検索して調べてみましたが、見つかりません。 出来ないのでしょうか? (Win7, excel2000)
>>307 shift+spaseそのあとshift+↓
by 2007.
310 :
309 :2011/06/06(月) 12:21:51.00
あ、複数行じゃなかったのか。orz
>308, 309 ありがとうございます。 やっぱり出来ないんですね。 どうしてやりたいかというと、 1行ずつ出力と照らし合わせて目で確認し、確認し終わったところを マクロで色をつけていくという作業をしているからです。 そして、出力にもペンでチェックを入れるので、ペンとマウスを 両方右手で持たないといけないので。 色をつけるのはマクロでショートカットが出来るのに、次の行に移るのに いちいちマウスで行番号をクリックしないといけないのが手間なので、 キーボードで出来たらと思ったんです。 なんか他にいい方法があったら、ぜひ教えてほしいです。
>311 色を付けるマクロに 当該セルの1行全部選択+次の行のセル(もしくは行全体)を選択 っていうのを組み込むだけでいいのでは?
313 :
名無しさん@そうだ選挙にいこう :2011/06/06(月) 13:07:44.83
>311 なるほど! そういう方法ができるんですね! ただ、すべての行に色をつけるわけではなくて、 色をつけずにスルーしていく行もあるんです。 でも、スルーする行のときだけは普通にセルだけで 下に↓で移動すればいいかも。 一度、やってみます! ありがとうございました。
>312 間違えて自分にレスしちゃいました。 すみません。 マクロ変更してみました。 バッチリいけそうです! ありがとうございました。
315 :
名無しさん@そうだ選挙にいこう :2011/06/06(月) 17:05:30.84
エクセルのグラフなのですが、データラベルを動かして 元データとのリンクが切れるということはありますか? ソースがあれば教えていただきたいです。
>>306 おかげで解くことが出来ました。
ありがとうございます
>>314 マクロにショートカット登録すればどんな操作でもキーボードだけでできるようになるけど
関数でA2に指定の文字列が存在(あいまい一致)した場合"●"、 なければ"×"を表示したいのですが MATCHとかを駆使しても中々うまくいきません 教えてください
>>318 =IF(COUNTIF(A2,"*hoge*"),"●","×")
320 :
名無しさん@そうだ選挙にいこう :2011/06/07(火) 08:12:13.23
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2005 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 マインスイーパー sheet3の同座標に1があったら●、 1が無かったらsheet2の周囲8マスの1の合計を表示するにはどうすればいいですか? ワークシート関数のみでお願いします。
321 :
名無しさん@そうだ選挙にいこう :2011/06/07(火) 10:13:40.88
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 顧客リストが2つあります。 Aは全顧客のリストで顧客番号、住所、電話番号などの項目があります。 BはAの中の特定の顧客リストですが、電話番号の項目がありません。 ひとつひとつコピペしていくのは大変なのでいい方法はありませんか? 特定の顧客といっても一発で抽出できるものではなく、 Bを作成するときはAから不要な顧客を手作業で消したようです。 お願いします。
>>320 まず、正規版のexcelを購入して下さい。
>321 MATCH、INDEXを組み合わせます。具体的な状況を追加してもらうと そのままコピペで使える式を書くことができると思います。 具体的な状況とは、 1 顧客リストAとBは別シートですか 2 関係する項目の列名、リストAのデータがある行範囲(2行目から1000行目までとか)
>>323 ありがとうございます。
AとBは別シートです。
Aは3行目から488行目まで顧客名が並んでいます。
Bは6行目から274行目まで顧客が並んでいます。
共通している項目は、「顧客番号」「顧客名」です。
Aから移したい項目は「電話番号」「FAX番号」です。
よろしくお願いします。
>>320 B2=IF(Sheet3!B2=1,"●",(Sheet2!A1=1)+(Sheet2!B1=1)+(Sheet2!C1=1)+(Sheet2!A2=1)+(Sheet2!C2=1)+(Sheet2!A3=1)+(Sheet2!B3=1)+(Sheet2!C3=1))
「列名」って項目名じゃなくて、A列、B列のことだったんだけど とりあえず、シートA側の列の並びがA列から顧客番号、顧客名、電話番号、FAX番号・・ シートB側はA列に顧客番号があるものとして、 電話番号を求めたい列の6行目 =INDEX(A!$A$3:$D$488,MATCH($A6,A!$A$3:$A$488,0),3) FAX番号を求めたい列の6行目 =INDEX(A!$A$3:$D$488,MATCH($A6,A!$A$3:$A$488,0),4) A!$A$3:$D$488 の D は実際のデータ範囲(電話、FAX番号までの列で可)の列を 式の一番最後の 3 や 4 は、シートAでの電話番号やFAX番号の列位置を数字で示したものを それぞれ指定してください
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel 2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 製品番号 製品名 個数 0000001 品物a 1 0000002 品物b 3 0000001 品物a 4 0000002 品物b 2 0000003 品物c 5 ・・・・・・・ 製品番号が一緒の場合、足し算の合計を出しながら 重複を削除したい どういうことかというと上記を 0000001 品物a 5 0000002 品物b 5 0000003 品物c 5 という結果にしたいです どういう方法があるか教えていただけますか
328 :
327 :2011/06/07(火) 13:42:49.63
たびたびすみません 重複を削除ではなくて、結果が出せれば問題ないです
>>236 ありがとうございました。
試してみます。
>>327 "ピボットテーブル"という言葉を出させたいが為の質問でつか?
【1 OSの種類 .】 Windows 7 【2 Excelのバージョン 】 Excel 2010 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 VBAで 【5 検索キーワード 】 vba シート名 変数 シート名が1〜30のシートあります。 ただ、左から順にあるわけではないので、 for i = 1 to 30 worksheets(i) ではうまく参照できません。 どうすればいいのですか?
332 :
複乳 :2011/06/07(火) 20:23:08.68
>>327 ・フィルタオプションの重複データを無視か何かにチェック
・ピボットテーブル
>>331 Dim i As String
i = 1
Sheets(i).Select
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 デジカメで撮った100枚程度の画像を縮小してA4用紙に8枚ずつ並べたいのですが、VBAを使えば可能なのでしょうか? excel マクロ 画像配置 等でぐぐっていますが、マクロについてそもそもの知識が無いので どれを使ってみて、改造してみればいいのかよくわかりません。ご教授お願いします
334 :
名無しさん@そうだ選挙にいこう :2011/06/07(火) 23:17:41.72
vba使えばできるけど、なんでその要件でExcel選ぶかが不思議だわw 普通にデジカメ付属のソフトでできんだろそんなもん
335 :
複乳 :2011/06/08(水) 00:33:57.32
336 :
327 :2011/06/08(水) 08:47:40.07
>>333 つか、XPだと写真の印刷ウィザードで何分割配置とか設定できなかったか。
338 :
329 :2011/06/08(水) 14:06:02.76
>>326 うまくいきました!
とても助かりました。
ご丁寧にありがとうございました。
>>332 Dim i As String
じゃ、Forループが回せなくなるぞ
>>331 ループ回せて、シートの並び順ではなく名前順に参照するには
dim i as long
for i = 1 to 30
worksheets(cstr(i))
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 ある程度 【4 VBAでの回答の可否】 可 【5 検索キーワード 】オートフィルタ内検索 フォーム VBA 顧客リストを作成し、自前で作成した検索ボタンから検索フォームを表示させてます そしてその名前TextBoxに入力した文字列を含む検査結果を呼び出したいと思ってます ActiveSheet.Range("$A$3:$D$65536").AutoFilter Field:=2, Criteria1:="=*工藤*", _ Operator:=xlAnd マクロからのコードを参考にしてやると工藤の含む文字列を一覧で表示できたのですが検索フォームからの入力だと検索できません Dim 検索値1 As String 検索値1 = TextBox1.Text ActiveSheet.Range("$A$3:$D$65536").AutoFilter Field:=2, Criteria1:="=*検索値1*", _ Operator:=xlAnd 変数の宣言が間違っているのでしょうか 文末をCriteria1:=検索値1にしても表示されないです ご教授お願いします
341 :
340 :2011/06/08(水) 16:31:10.29
追記 Dim 検索値1 As String 検索値1 = TextBox1.Text ActiveSheet.Range("$A$3:$D$65536").AutoFilter Field:=2, Criteria1:=検索値1 上記だと工藤の完全一致の検索しかできないので"工藤"を含むデータを表示させたいです 例 工藤は検索できても 工藤新一は引っかからない 説明下手でごめんなさい
Criteria1:="=*" & 検索値1 & "*" じゃないの
>>342 うまくできました
ありがとうございます
【1 OSの種類 .】 WindowsVISTA 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 excel オートフィル A B C D E F G H I J K L 上の様に並んでいるデータを↓の様に縦一直線に並べたいのですが どうすればいいのでしょうか? A B C D E F =A1 =B1 =C1 =D1 =A2 =B2 =C2 =D4 まで手入力して マウスでドラッグすると =A3が来てほしいのに=A7が来てしまいます どうしたらよいのでしょうか?
>>344 =OFFSET($A$1,INT((ROW(A1)-1)/4),MOD(ROW(A1)-1,4))
と入れて下にコピー
>>345 手掛かりが無くて困っていたので助かりました!!
有難うございます!!
347 :
名無しさん@そうだ選挙にいこう :2011/06/09(木) 21:30:50.28
質問なんですが。CD読込みが出来ないネットブックPCにExcelを入れる事って出来ますか?
>347 ソフトウェアのインストールについての質問はスレ違いです
>>347 心配しなくてもDVDさえ読み込めればいいから。
ってことじゃないよな。多分。w
相談させてください パソコンが壊れたので、PCの修理屋に任せて直してもらったのですが エクセルのデータを印刷するとき、印刷サイズがおかしくなってしまいました。 パソコンが戻ってきた後に初めて印刷しようとする、エクセルのシートを開いて印刷しようとすると 初期状態のページ設定のサイズが A4ではなく、写真L判になってしまっており、それらをA4になおさないといけなくなっています。 一度A4になおして印刷したファイルは、次からの印刷はA4になっており大丈夫のようです。 1枚・2枚程度ならともかく、昔作ったエクセルデータを何千枚も印刷する必要があるので、何千回もA4に直す設定が手間なのです。 どうしたら直るでしょうか、初期状態から写真L判ではなくA4になるでしょうか? 教えていただけると助かります。よろしくお願いいたします。
>>351 コントロールパネル>プリンタ
見たら?
質問です。 1月 2月 3月 2005年 100 200 300 2006年 400 500 600 を2005年と2006年の1〜3月の各数字を折れ線で、2005年と2006年の各合計を棒グラフで表したいのですが、 棒グラフにする方法がわかりません。 折れ線は作れたのですが、棒グラフが上手く作れません。 真ん中に棒グラフが2本できるようにしたいのですが、教えていただけると助かります。 よろしくお願いいたします。
よろしくお願いいたします。 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 ほんの少し 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 countif ワイルドカード等 【例】 12345 478 147 257 という4つの数字が各行に入ってたとします。 1が使われている数・・・2個 2が使われている数・・・2個 3が使われている数・・・1個 4が使われている数・・・3個 ・・・と一つの数字を文字列のワイルドカードのように抽出したいのですが うまく行きません どのような関数を入れるとうまく行くでしょうか。
【1 OSの種類 .】 WindowsVISTA 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 含む文字列の数、文字列の抽出 2chのスレから何月何日に何個書き込みがあったか調べたいので 最初↓のレス番号の2001/01/26をFINDで他のセルに抽出して 3 名前:名無し :2001/01/26(金) 21:18 それをCountifで何個あるか数えさせようと思ったんですが そもそも1つのスレで何月何日に発言があったか リストアップさせなきゃいけない事に気付きましたOTL 書き込みがあった日にちをリストアップするには どうしたらいいですか?
【1 OSの種類 .】 XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 Excel+「COUNTIF」「FIND」「INDEX」「MATCH」「OFFSET」「個数 カウント」 等 品目 数量 単価 A B C 1 パン 1 2 ごはん 2 3 パン 4 パン 2 5 ごはん 0 パンの総数 3 ごはんの総数 2 図のようにB列がnullもしくは0でない場合、その該当品目の個数をカウントしたいのです 検索した関数を入れ子にすればなんとなく出来そうな気はするんですが… よろしくお願いします。
何かの宿題か?いきなり連続で質問が出てきたけど >354 こういうときは1個と数えるのか、2個と数えるのか教えてください。それによって式が違います。 1232 106 この 3個 の数字の中の 2 の個数(=3個) が必要なのか、 257 それとも、2を含む数字の個数(=2個)が必要なのか、どちらですか?
>>356 ですが、自己解決しました
=SUMIF(A1:A5,"ごはん",B1:B5)
でOKでした
出来ないと思っていたのは条件を勘違いしていただけでした…
スレ汚し失礼しました
>355 Excelのシート(セル)にどのようにデータが入っているのかすら情報を ださないんなら、回答を期待しない方がいいです。
360 :
355 :2011/06/10(金) 21:55:48.93
すいませんでした 例えばこんな感になります A1→1 名前:名無しさん :2001/01/26(金) 20:55 A2→こんばんは A3→げんき A4→(空白) A5→2 名前:名無しさん :2001/01/26(金) 22:34 A6→1おつ〜 A7→(空白) A8→3 名前:名無しさん :2001/01/26(金) 23:40
>>360 そういうデータだと確実性は無理だと思う。
ソースとか専ブラのdatとかからなら正確にカウントできると思うが。
362 :
355 :2011/06/10(金) 22:35:16.32
>>361 もともとまとめサイトからコピペしただけなので
正確にカウントするにはどういう風にコピペし直せばいいですか?
360 名前: 355 [sage] 投稿日: 2011/06/10(金) 21:55:48.93
すいませんでした
例えばこんな感になります
A1→1 名前:名無しさん :2001/01/26(金) 20:55
A2→こんばんは
A3→げんき
A4→(空白)
A5→2 名前:名無しさん :2001/01/26(金) 22:34
A6→1おつ〜
A7→(空白)
A8→3 名前:名無しさん :2001/01/26(金) 23:40
>>362 このようにレスコピペがあった段階で現状のデータだとレスかレスコピペかの判断が難しくなる。
ギコナビを使っているんだけど、それだとデータ部と投稿日時の違いがわかるので
Datから正確なカウントができると思う。
まとめサイトを見てみないことにはなんともいえないなぁ。
364 :
355 :2011/06/10(金) 22:55:23.74
じゃあ、レス番号のあるところをAの列にして コメントをBの列かなんかにコピペ出来るようにしてみます。 その場合ならカウントできますか?
A列をレス番だとすれば「A列が空白でなければB列の何文字は日時ですよ〜」 と、式は作れるだろうね。 ま、結局それもデータの持ち方次第だし、そこまで手間をかけるのなら 日時部分も別にすれば? とは思うけど。
366 :
355 :2011/06/10(金) 23:16:44.70
そうですね・・・ えーとまずフィルターでカッコやスラッシュを含むでレス番号が入ってる行をとりだして あとは前の文字が連番になっているかIFかなんかで確認させて 1 名前:名無しさん :2001/01/26(金) 20:55の部分を それぞれ分離させていけば良さそうですね・・・ 書き込みがあった日にちをリストアップさせるにはどうしたらいいですか? 上記のままだと日にちのリストアップしても 2001/01/06 2001/01/06 2001/01/06 2001/01/07 2001/01/08 2001/01/08 という感じになるだけなんですが 最終的には 2001/01/06 3コ 2001/01/07 1コ 2001/01/08 2コ という感じにしたいです。
>>366 前の書き込みをあんまりよく見てないけど、
2007だったらデータの「重複の削除」でcountif
でも、ピボットテーブルが最強。一発でそこの状態まで行く
368 :
355 :2011/06/10(金) 23:30:48.30
有難うございます! ピボットテーブルは調べてわかんなかったら重複の削除します 本当に助かりました!!
>>369 積み上げ棒グラフあるいは棒グラフにY誤差を付けて表示
>>367 一度はドロップアウトした清人だからこそおっさんの面白さを見落とさず拾い上げる事ができたし、それを伝える事もできた。
同じ伝えるプロでも、金持ちに生まれてリア充一直線を突っ走ってきたアナウンサーにこの面白さは伝えられないし、
受け手が勉強ばっかりやって来たオタクではやはり理解する事ができない。
必要なのは人生経験という共通の背景。
>>357 回答が送れて申し訳ございません。
>>354 です。
数字の重複はありませんので
1232という可能性は考えなくて良いのです。
なので、2を含む数字の個数(=2個)が必要です。
>>372 A1〜A4に入っているとして
=SUMPRODUCT((LEN($A$1:$A$4)-LEN(SUBSTITUTE($A$1:$A$4,ROW(A1),""))))
として下にコピー(9まで)
0も入れるなら
=SUMPRODUCT((LEN($A$1:$A$4)-LEN(SUBSTITUTE($A$1:$A$4,ROW(A1)-1,"")))
>>372 =CONCATENATE(ROW(A1),"が使われている数・・・",LEN(A$1&A$2&A$3&A$4)-LEN(SUBSTITUTE(A$1&A$2&A$3&A$4,ROW(A1),"")),"個")
375 :
名無しさん@そうだ選挙にいこう :2011/06/12(日) 13:16:06.89
それ普通に第2軸にして軸反転でできなかったっけ? 人口ピラミッドみたいにしたいって事でしょ?
関数とかバンバン使いまくれる人って、やっぱ一流大学卒の人なんですか? 神奈川大学卒の先輩のExcelファイルには、SUM関数しか知らないんですが。 それも最初までSUM関数すら使ってなくて、 いちいち、=A1+A2+A3+A4みたいに一個一個足していってたんですよ。 それを見た時、この会社、ダメだって思いました。
378 :
複乳 :2011/06/12(日) 20:33:57.13
>>377 エクセルの数式程度で会社の優劣を決めるお前のほうが絶望的
>>377 全く関係ない。
なんとなく算数・数学が不得意でない人に適性がちょっとあるかな、程度。
東大出だろうとなんだろうと、関数を使えない人がいるのは当たり前。
エクセルに興味がなかったら覚えないだろ、そういうもんだ
>>377 ついでに、お前が新入社員だとしたら、かなり程度の低い新入社員
そうじゃないとしたら、複乳と同じコメントにするわ
中央大卒の知り合いなんか=SUM(A1*B1)なんてやってたので=A1*B1でいいと教えてやった。
コンピューター言語の文法をまったく知らないと、応用するのは難しいよ 変に「こう書かなきゃいけない」って思い込むのは別に珍しいことじゃない
"たばこ大増税&出荷停止。 でも個人輸入すれば大丈夫。日本語の輸入代行も多数。 「タバコ 輸入代行」とかで検索するとあるある、、、 送料込みで1箱90円とかの激安サイトもある。"
【1 OSの種類 .】 win7
【2 Excelのバージョン 】 Excel2010
【3 VBAが使えるか .】 なんとか
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 VBA 展開 階層 ツリー
金銭出納帳入力ソフトを作ろうと構想段階で色々調べているのですが
http://www.joy.hi-ho.ne.jp/hootown/genkin.html このソフトみたく科目を入力するとその科目項目の登録摘要の階層展開コードが知りたいです。
まったく現時点でのコードが組めてないのでVBAでの回答は否とさせていただきました。
上記訂正
【4 VBAでの回答の可否】 可
>>1 を読み直したんですが、VBAでの回答を希望です
すいません、よろしくお願いします
>>385 スレ違い
Excelとは関係ないアルゴリズムとかの話は、ここでは取り扱っておりません
つーか、そのファイルのソース見ちゃえば早いんじゃね?
まあ凄まじくクソなソースだけどなw
定数ってものを知らないようで、バラバラにリテラル値使いまくりだし
クラスも使えないようで、冗長なコードになってるし
インデント規則もバラバラだし、変数の連続宣言で型指定忘れてるところ多いし
>>387 無知ですみませんでしたw
VBAでどうにかしてるものだと思ってたんで質問したんですが
スレ違いでしたか…
ソース見るにもロックかかってみれなかったんでorz
となると科目コード一覧と摘要コード一覧を別シートに記述してそこから読み取るしかないのか
そうするとコードが膨大で探す手間が多くなる気がするんだけど、仕方ないのかな…
>>387 言い方にとげがあるよ、お前
もう少し丁寧に言えカス
>>389 フォローありがとう!
いいんだ、できないみたいだし
それがわかっただけでも十分です
>>387 OpenOfficeOrgで開けば見れる
コード見たが、こんなんでもやっていけるんだと自信が出る
392 :
名無しさん@そうだ選挙にいこう :2011/06/15(水) 05:38:41.78
以前(もう数か月も前ですが)ここの親切な方にかなり複雑なVBAを組んだEXCELを作っていただいたのですが今だにそれをいじれません。どうしたらよいでしょうか?
そのEXCEL(ブック)をうpして、どう弄りたいのか書けば、別の親切な人が弄ってくれるかもよ。 但しパスワードが掛かってたり、二次配布禁止と言われてるものの場合はそれ出来ないけどな。 EXCELの場合、パスを外すのはリバースエンジニアリングに当たらないから、個人的に外して 中身見るのは問題ないけど、そうやって得たコードを第三者に晒すと問題有りだから。 その場合は、自分で勉強して弄れるようになるか、それ作った人の再降臨を待つかだな。 つーか、それ作った人だって、生まれたときからVBAの知識があったわけではなく、最初は君と同じで VBAなんて全く組めない弄れないところから初めて、勉強してVBA使えるようになったわけだから 君もせっかくサンプルがあることだし、これを機に、それを基に、勉強初めてみたら? パス付きの中身の見方は、一つ上にも書いてあるし、ググればExcelでの方法も見つかる。
394 :
名無しさん@そうだ選挙にいこう :2011/06/15(水) 11:17:26.85
パスはかかってないけど二次禁止… 神様、もう一度…
> せっかくサンプルがあることだし、これを機に、それを基に、勉強初めてみたら?
396 :
名無しさん@そうだ選挙にいこう :2011/06/15(水) 12:36:47.39
クソうぜえな
397 :
名無しさん@そうだ選挙にいこう :2011/06/15(水) 15:41:10.81
作業標準時間が15分だとします。 各作業員(A,B,C)がおのおの作業します。 それぞれ1ヶ月間に作業した結果→12分、8分、11分・・・・・・・・ 作業員個々の1ヶ月計の標準時間を求める関数を教えてください。
>>397 標準時間の求め方は複数有り、どう求めるかは企業の方針とかで変わってくるし、その部分はExcelとは関係ない話
なので、まずは求め方を確立した上で、それをExcelに計算させようとした場合に解らないことがあったらまた来なさい
例えば、「円の面積はどうやって求めたら良いですか?」というのはスレ違いで、円の面積の求め方は解っている上で、
Excelにおいて円周率を関数で返す方法や、2乗の入力方法が解らないと言う場合に
「円周率はPI()関数で、2乗は^2」とか教えるのがこのスレの範疇
399 :
名無しさん@そうだ選挙にいこう :2011/06/15(水) 17:09:26.10
はい。了解
400 :
名無しさん@そうだ選挙にいこう :2011/06/15(水) 17:30:05.78
>>395 数か月勉強して最初よりはるかに分かるようになって、
それによっていただいたものの複雑さがより一層理解できてしまった
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━ 【1 OSの種類 .】 Windows 7 【2 Excelのバージョン 】 Excel 2010 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 countif 見分け 今はcountif(範囲,"*"&a1&"*")といふうにそれがあればカウントするようにしているのですが、 涼と涼香の二人がいる場合、涼香で両方がカウントされて困っています。 ただ、検索対象セルは「涼、涼香」と入れることもありますので、 そのときは両方に1ずつカウントできるようする方法を教えてください。
区別したけりゃ"*"外せ あと > 検索対象セルは「涼、涼香」と入れることもありますので その間違った使い方を改めろ 検索対象セルには「涼」あるいは「涼香」のいずれかのみを入れること 両方の結果を出したければ、検索対象セルは「涼、涼香」と入れるのではなく 検索対象セルと数式を複数用意して、それぞれに「涼」と「涼香」を個別に入れろ
403 :
複乳 :2011/06/15(水) 18:46:38.69
countif(範囲,"涼香") で「涼」「涼香」「涼、涼香」の数 そこからcountif(範囲,"香") を引けば「涼」の数が countif(範囲,"、") で「涼、涼香」の数が決まる 「涼」「涼香」「涼、涼香」の数から 「涼」の数をひいて 「涼、涼香」の数がひけば 「涼香」の数が出る 後はテキトーに足し算
>>397 アベレージ関数を使って式を作ってください。
いや、作りなさい。
他に方法が色々とあってもアベレージ関数であなたは作りなさい。
405 :
複乳 :2011/06/15(水) 19:16:40.96
アベレージ関数っていつも綴り分からない。つ買わないけど あとそれエラーになるんじゃね
>>404 標準時間ってものを理解してから回答した方がいいよ
>>406 あまりにも漠然とした質問だからそんなの今回はどうでもいいの。
標準時間ってものを知らない人には、 「標準」や「時間」というのが漠然とした概念だから、質問が漠然としているように見えるのかもしれないが 標準時間ってのは漠然とした概念ではなく、厳然たる意味のあるものなのだよ
標準時間に厳然とした意味があるかどうかにかかわらず、
>>397 の質問は漫然としてるだろ?
漫然としてないなら、答えてやれよ。
1 Windows XP、2 Excel2003、3 VBAが使えるか:いいえ、 4 VBAでの回答の可否:否 5 検索キーワード:ピボットテーブル 質問)下記のようなピボットテーブルを作りたいのですが、 カラー比率は出せるのでしょうか? 所属,社員コード,印刷枚数,カラーモード(元データ) 経理,111111,10,カラー 経理,111111,20,モノクロ 総務,222222,15,モノクロ 経理,333333,50,カラー 所属|社員コード|印刷枚数|カラー比率 (ピボットテーブル) ----------------------------------- 経理|111111 |30 |33% 経理|333333 |50 |100% 総務|222222 |15 |0%
>>409 スレ違い(
>>398 参照)
スレ違いと言われて質問者は了解してるんだから、関係ない奴が駄々こねるな
>>410 ピボットのみじゃ無理っぽい
でもカラー比率自体は数式で簡単に出せるんだから、元データの方で
カラー比率フィールドを追加してやればいいんじゃね?
エクセル2010を使っています。 グラフ作成で、とびとびのデータを線で繋ぎたいのです。 2003ではツールのオプションで補完して線を繋ぐという設定がありましたが、2010で同じような設定画面を見つけられません・・・ よろしくお願いします。
>>411 脊髄反射乙。
ひょっとして回答要求してるとでも思ってるのか?
416 :
名無しさん@そうだ選挙にいこう :2011/06/16(木) 22:06:27.35
マルチプランのデータをExcel5.0で開けることまでは 調べてわかったのですが、Excel5.0をXPにインストールすることは 可能でしょうか?Windows3.1対応らしいのですが XPにインストール可否に関する回答がうまくみつかりません。 もしくはマルチプランのデータをXPのExcel2000or2003で 開く良い手立てはないものでしょうか? 被災した知人がデータ流されてしまったようなので 昔の船の設計に関するデータをあげようとFD見つけたものの 開けなくて困っております。
417 :
複乳 :2011/06/16(木) 22:24:49.75
マルチプラン 変換 でぐぐればイロイロでてくるけど どれが確実かは分からない
418 :
名無しさん@そうだ選挙にいこう :2011/06/16(木) 23:28:47.46
もうちょっと調べてみます
420 :
410 :2011/06/17(金) 08:36:07.59
>411 回答ありがとうございます。 関数で試してみます!
>>400 とりあえずメール送ってみたら?
それで返事が来なかったらその人はそれ以上やる気が出ないってことだ
ここまだ見てるならメールの確認くらいはしてくれるだろうし
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 - 【4 VBAでの回答の可否】 - 【5 検索キーワード 】 エクセル 終了できない 頻繁に(一日数度)エクセルが終了できない状態になります マウスでセルをクリックすると、クリックしたセルからドラッグ選択状態になり 選択を外すことも、他のセルを選択することもできなくなります こうなるとキー入力も受け付けず、保存も×ボタンで終了することもできません 他のアプリに切り替えるとそちらは正常に動作していますが 背面ではドラッグ選択状態のまますごい勢いでスクロールしています 終了するには強制終了しかありません うまく説明ができませんがなにか解決法わかる方いませんか
>>422 とりあえず、OS、Excelのクリーンインストール
面倒だとかは言うなよ
自分でできることすらやろうとしないなら、(゚听)シラネ ってことになるので
昨日OSクリーンインストールして再発したので途方にくれています エクセル以外にも必要なソフトを何点か入れているので、完全にきれいな体ではないですが かなりきれいなはずです 1年ちかく同じ構成(ハード、ソフトとも)で問題はなく、2週間くらい前から突然症状が発生しています
>>422 オプションに反復計算という項目にチェックが入っていたらチェックを外す。
426 :
複乳 :2011/06/18(土) 17:19:34.83
>>422 キーボード・マウスになんか詰まってるだけとか・・・
キーボードとマウスを試しに外してみるとか
427 :
422 :2011/06/18(土) 17:51:54.50
>>425 入っていませんでした
>>426 外しても(症状発生時に交換しても)変化なしでした
アプリを切り替えればそちらでは問題なく操作できるので、ハードは問題ないと思います
>>424 なんで OS クリーンインストールしたのに、エクセル以外のソフトが入ってるんだ?
他のソフトが必要だとしても、まずエクセルだけで確認するだろJK
>>424 システムの復元だな。2週間前を復元ポイントで。
あ、クリーンインストールしちゃったんだっけ?
じゃあ無理か。
Dim s as string do s = "test" Msgbox s loop こういうのを実行してしまった時はどうすれば終了できるんでしょうか?
>>432 ESCを暫く押しっぱなしだと中断できるよ
>>433 2003で10秒ぐらい試してみたけどだめだったよ
メッセージボックスが閉じてまたすぐ開くのくり返しになる
>>434 2010では出来るんだけどなあ。まあでも一発で止まるctrl+breakの方がいいね
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━ 【1 OSの種類 .】 Windows xp 【2 Excelのバージョン 】 Excel 2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 否 ファイル内の別シートを参照するマクロを組み込んだセルを 異なるファイルA.xlsからB.xlsへコピペした際、 コピペしたマクロが下記のように書き換わってコピペされてしまいます。 マクロ内を変化させることなくコピペする方法はないでしょうか? ○コピぺ元マクロ =SUMIF(シート名!M11:M22,">0",シート名!M11:M22) ○コピぺ先にコピーされたマクロ =SUMIF('[参照元file.xls]シート名'!M11:M22,">0",'[参照元file.xls]シート名'!M11:M22)
>>436 エクセルの仕様だからねえ
自分だったら置換を使うかな
>>436 ファイルA.xlsをコピー、
B.xlsから逆にシートを移動してくるとか
場合によってはそっちの方が楽。
>436 コピー元の数式バーをコピーしてコピー先の数式バーに張り付け。 これでもめんどくさいけど。
>>436 突っ込むの忘れてたけどそれは
「マクロ」ではなく「数式」でございます
441 :
436 :2011/06/19(日) 22:22:30.73
>>437 なんと!仕様でしたか。
コピペは諦めて、骨は折れますが置換で訂正していきます。
>>438 その場合にも同じ現象が発生しますね。
異なるファイル間では、コピペだけでなくシート移動も同じと見なされるようです。
>>439 ひとつふたつならやってみるのですが、
セルの数×ファイルの数でみると途方もないッス。
>>440 数式でしたね。
指摘ありがとうございました。
>>441 >コピペは諦めて、骨は折れますが置換で訂正していきます。
>セルの数×ファイルの数でみると途方もないッス。
それこそ、「マクロ」でやればいいと思うんだが...。
443 :
名無しさん@そうだ選挙にいこう :2011/06/21(火) 01:58:27.22
【1 OSの種類 .】 Windows XP・SP3 【2 Excelのバージョン 】 Excel 2000(自宅)・Excel 2003(職場) 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 マクロ 印刷 excel エクセルのシートの"$B$1:$O$20"に表があり、 別シートからのデータを持ってきています。
444 :
名無しさん@そうだ選挙にいこう :2011/06/21(火) 02:04:44.77
該当者が1〜300くらいおり、 筆記試験を何回か行い、 その累積データを個別の帳票にして その300人分を班毎に印刷したいです。 300人は40〜50程度の小班に分かれています。 できれば 某班の10番から14番というように 指定番号の該当者のみを印刷できるようにしたいです。 その印刷は1回で全部終了するのではなく 追加されるデータがいくつかたまったら また班毎・指定番号毎にに印刷することになると思います。
445 :
名無しさん@そうだ選挙にいこう :2011/06/21(火) 02:07:15.58
下記は私が考えたマクロですが 失敗作で班の先頭の者の帳票が複数枚出るだけです。 何がまずいのか、どうすれば思うように印刷できるか、 アドバイスをいただけますと助かります。
446 :
名無しさん@そうだ選挙にいこう :2011/06/21(火) 02:11:22.01
Sub 個票印刷() Range("Q4").Select hajime = InputBox("最初に印刷する該当者の番号を半角で入力してください(1〜300)", "開始該当者番号の入力") owari = InputBox("最後に印刷する該当者の番号を半角で入力してください(1〜300)", "終了該当者番号の入力") For I = hajime To owari Range("q4 ").Select ActiveCell.FormulaR1C1 = I Range("B1:O20").Select ActiveSheet.PageSetup.PrintArea = "$B$1:$O$20" ActiveWindow.SelectedSheets.PrintOut Copies:=1 Next I End Sub
447 :
名無しさん@そうだ選挙にいこう :2011/06/21(火) 02:15:59.97
コメント部分は省略しました。
A1に 「1.23」 と数字入力したものを、セルの書式設定-ユーザ定義を使って 「整数部分1と小数点以下23です」 …と同じA1セルに表示させたい場合なのですが ユーザ定義で 「"整数部分"0."と小数点以下"00"です"」 とすると 小数点が表示されてしまいうまくいきません 小数点「. 」をユーザ定義書式のみで消す方法はもしかしてないのでしょうか
はい、ユーザ定義書式というか、表示形式のユーザ定義のみで消す方法はありません。
早朝だというのに回答ありがとうございます もうちょっと方法を拡張、限定解除して・・・ 「数字を分解して別のセルに再結合(?)する方法を使わずに、 さらにVBAも使わずに、同一セル内で(数字として入力された)数字の小数点「. 」を消す方法は無い」 ということでいいでしょうか
ありがとうございました 意外な…自分としてはかなり意外な「出来ないこと」があると知りました 他の方法で対応しようと思います 回答ありがとうございました
整数部・小数点以下だけをあらわすなら、姑息な手段(2段にする)ができるけど、
>>450 は無理
なんで「書式だけ」にこだわるのかわからん 小数点を白にすればいいじゃん
>443-447 そりゃあ、印刷範囲が固定されているから >ActiveSheet.PageSetup.PrintArea = "$B$1:$O$20" >ActiveWindow.SelectedSheets.PrintOut Copies:=1 同じ部分が何度も印刷されるのは当たり前です。 そもそもの話、データ範囲は単独のシートのB1:O20だけですか? 300人分にもならない(14列×20行=280個のセル)けど。 マクロを見る限り、複数シートというわけでもなさそう。 人名や識別番号など個人情報に関する部分を抜いた画面イメージを 示してもらうと、誰か親切な人がつくってくれると思う。
>>454 > 小数点を白にすればいいじゃん
出来るん?それ
457 :
443 :2011/06/21(火) 18:19:27.32
>455 ありがとうございます。 「別シートからのデータを持ってきています。 」 と書いたように別シートからです、 読みにくい変な長文の記入をして申し訳ありません。 「入力」という別シートの$A$3:$BW$310からデータを持ってきています。 印刷するシートは「印刷」というシートで"$B$1:$O$20"が印刷範囲です。
458 :
443 :2011/06/21(火) 18:22:22.70
入力シート A B C D E F G H 連番|班内番号| 氏名 |date1|date2|date3|‥‥ |date10| 001 | 1 |山本太郎|80 |90 |70 |15 |50 | 002 | 2 |山本次郎|80 |70 |70 |10 |40 | 003 | 3 |山本三郎|40 |90 |50 |20 |20 | 004 | 5 |山本四郎|50 |60 |70 |10 |10 | 300 |40 |山本五郎|80 |90 |70 |10 |100 | 平均点 |50.3 |60 |60 |20.1 |50 |
459 :
名無しさん@そうだ選挙にいこう :2011/06/21(火) 18:26:36.98
印刷シート ( )内は「入力シート」から連番単位で持ってきます。 A B C D E F G H 番号 (1) 氏名 (山本太郎) 回数|1 | 2 | 3 |4 |5 | |(80) |(90) |(70) |(15) |(50) | 回数|30 |31 |32 |33 |平均 | |(80) |(90)|(70)|(15) |(50) |
460 :
455 :2011/06/21(火) 19:55:18.33
>443 印刷シートの Q4 セルに設定した数字によって 印刷シートの B1:O20のエリアの内容が決まるはずなのに、 同一人物の内容のまま複数枚印刷してしまう、ということならば、 マクロの中に 自動再計算をオフにしているところ 〜.EnableCalculation = False がありませんか? ないのであれば、 ActiveCell.FormulaR1C1 = I と Range("B1:O20").Select の間にmsgbox("印刷します") みたいに操作待ちのタイミングを設けたらどうですか?
質問です。 【1 OSの種類 .】 Windows XP・SP3 【2 Excelのバージョン 】 Excel 2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 EXCEL INT エラー =INT((34.8-34)*10) この結果が8じゃなく7になってしまうんですが、 なぜなんでしょうか・・。
462 :
複乳 :2011/06/21(火) 20:27:14.11
>>461 小数誤差
でぐぐれ
=34.8-34
は
0.7999999997
になる
463 :
461 :2011/06/21(火) 21:09:45.04
>>462 ありがとうございました。
解決策がわかりました。
こういうのって、予備知識が無くてもバカじゃなきゃ気付くよな 数式でもVBAコードでも同じだけど、意図通りの結果が出なければ ネスト(入れ子)や連続処理をバして、ひとつひとつの計算や関数処理などの結果を確認するのは 小学生でも出来る簡単かつ初歩的な確認内容 つまり A1=34.8-34 B1=A1*10 C1=INT(B1) みたいにな ここまでやった上で、少数誤差という予備知識が無いが故に、 「=34.8-34が0.8ではなく0.7999・・・になるのは何故なんだ?」って質問なら解らなくもないが 予備知識が無くても出来る確認すらせずに、「なんかおかしい」「何故こんなことになるんだ?」とか 騒ぐ奴は、会社じゃ大抵お荷物扱いだったりする Excelに限らず、パソコンに限らず、慢性的な問題が起きたときに、原因はともかく、順を追って確認して 何処で問題が発生してるかすら特定できないような奴には、ほんと、勘弁してくれって感じになる とか愚痴ってみる
465 :
名無しさん@そうだ選挙にいこう :2011/06/22(水) 08:16:11.46
ほんと勘弁してほしいわ意味ないオナニー解説は
466 :
名無しさん@そうだ選挙にいこう :2011/06/22(水) 19:14:03.57
あるセルに入力されている数値分だけ、 行すべてコピーして下に数値分挿入ってどんな構文書けばいいでしょうか。 コピー挿入が終われば、次の行の数値を読んで、また同じ処理を繰り返したいです
ネタにマジレス・・・
468 :
443 :2011/06/22(水) 20:00:17.46
すみません。「Q4」は誤りで「B26」でした。 現在、「B26」に連番を入力すると 459の画面の「氏名」に該当者の氏名が出ます(関数)。 そこでマクロボタンを押すことで、 446のマクロの 「最初に印刷する該当者の番号を半角で入力してください」 という問い合わせが出て入力し(連番A) 「最後に印刷する該当者の番号を半角で入力してください」 という問い合わせが出て入力すれば、(連番B) 連番AからBの連続する該当者の帳票が印刷できる、 となるようにマクロを作りたいと考えています。 どのようなマクロを作ればいいのか、 ご指導をお願いします。
469 :
443 :2011/06/22(水) 20:03:10.22
なお460様の書かれた 〜.EnableCalculation = False はありません。 また「操作待ちのタイミング」を作る意味は何なのでしょう? 無知で申し訳ありません。 また、当方の国語力不足でしたいことが伝え切れていない気がします。
>466 こんなんでいいのかな? rangeって引数や戻り値にできなかったっけ? Sub test() Dim myRng As String myRng = ActiveSheet.Range("C3").Address ' 最初のセル位置 Do While (Range(myRng).Row < 50) myRng = ex_466(myRng) If myRng = "" Then Exit Do Else Range(myRng).Select End If Loop End Sub レベル不足で長文貼れず、続く
471 :
470 :2011/06/22(水) 20:11:49.06
続き(こっちが実際にやってる部分) Function ex_466(w_Rng As String) As String Dim c As Range, r As Variant Set c = ActiveSheet.Range(w_Rng) r = c.Value If IsNumeric(r) And (r > 0) Then ActiveSheet.Range((c.Row + 1) & ":" & (c.Row + r)).Insert ActiveSheet.Range(c.Row & ":" & c.Row).Copy ActiveSheet.Range((c.Row + 1) & ":" & (c.Row + r)).PasteSpecial Application.CutCopyMode = False Else ex_466 = "": MsgBox (c.Address & "で異常終了"): Exit Function End If ex_466 = c.Offset(r + 1, 0).Address End Function
472 :
460 :2011/06/22(水) 20:28:47.39
>443,469 VBAの実行タイミングと、シートの各セルの再計算結果が反映されるタイミングがずれるんじゃないかな、ということです。 「Q4じゃなくてB26」が何かわかりませんが、hajime に 1、owari に 3 を入れたとして、VBAは 「Q4?B26?」セルに 1 を設定して印刷のコマンドを出します。 次に間髪をいれず「Q4?B26?」セルに 2 を設定して印刷コマンドを出します。 次に間髪をいれず「Q4?B26?」セルに 3 を設定して印刷コマンドを出します。 一方、Excelの方は印刷コマンドを受たら、印刷イメージを展開してプリンタへ送るデータを組み立てます。 印刷データが出来上がるまで、VBAの処理を中断させていればいいんですが、実際のところはどうなんでしょうね。 ここから先はよくわかりません。 詳しい人、いかがですか?
474 :
名無しさん@そうだ選挙にいこう :2011/06/22(水) 23:26:19.41
わかりにくい文ですみません。 460(=472)様、ありがとうございます。 >「Q4じゃなくてB26」が何かわかりませんが 「印刷」シートの「B26」セルに連番(例「123」)を入力すると 459の画面の「氏名」に、関数(=VLOOKUP($B$26,入力!A$3:$AG$310,3))により 該当者の氏名123氏のが出るようにしてあります。 また個人の得点データも同様です。 「入力」シートのA$3:$BW$310にデータがあり、 ここからデータを「印刷」シートに持って行き、 差込印刷?をしたいということです。
>474 印刷シートのB1:O20の内容は、B26セルの内容が変わるたびに「再計算」機能で変化します。 ところが、VBAで次々と変化させながら同時に印刷の指示も行うので、印刷処理が追いつかないと推測します。 hajime の値をB26セルに設定 B26セルの値によってB1:O20の内容を再計算→印刷指示→印刷データができるまでVBAの実行一時中断 B26セルの値を+1 B26セルの値によってB1:O20の内容を再計算→印刷指示→印刷データができるまでVBAの実行一時中断 ・・・B26セルの値が owari の値まで繰り返す となるようにすればいいと思うので、>460にも書いたように ActiveCell.FormulaR1C1 = I と Range("B1:O20").Select の間にmsgbox("印刷します") みたいに操作待ちのタイミングを設けたらどうですか? と提案した次第。
476 :
443 :2011/06/23(木) 00:21:25.52
ありがとうございます。 その提案を活用させていただきます。 ただ、現実にまだ差込印刷?自体のマクロができてできていないので 引き続きアドバイスをお願います。
>>476 取りあえず印刷前に再計算を実行するようにしてみた
Sub 個票印刷()
Dim lStart As Long, lEnd As Long, lX As Long
lStart = CLng(StrConv(InputBox("最初に印刷する該当者の番号を半角で入力してください(1〜300)", "開始該当者番号の入力"), vbNarrow))
lEnd = CLng(StrConv(InputBox("最後に印刷する該当者の番号を半角で入力してください(1〜300)", "終了該当者番号の入力"), vbNarrow))
For lX = lStart To lEnd
>>477 の続き
With ThisWorkbook.Worksheets("印刷シート")
.Range("B26").Value = lX
.Calculate
.PageSetup.PrintArea = "B1:O20"
.PrintOut Copies:=1
End With
Next lX
End Sub
これでダメならPrintOutにブレークポイントを設定して印刷前にシートの値が変更されてるか確認してみ
479 :
名無しさん@そうだ選挙にいこう :2011/06/23(木) 06:56:01.26
詳しい方、以下のマクロについて★部分が間違っていると思うのですが直し方をご教示 ください。 数日悩んだのですが、能力不足でこれ以上進めませんでした。お願いします。 ------------------------------------------------------- Sub 複数のブックを改行を入れつつ一つのシートに転記() Dim fn, wb, x, i, n, sh, myPath myPath = ThisWorkbook.Path & "\" fn = Dir(myPath & "*.xls") '選択したフォルダ内のExcelファイルを検索 Do Until fn = "" '全て検索し終えると、fn = Empty となるので、その間以下を実行 If fn <> ThisWorkbook.Name Then 'ファイルが自分以外なら Set wb = Workbooks.Open(myPath & fn) '選択したファイルを開く For Each sh In wb.Worksheets '各シートごとに If sh.Name = "製品名" Then ?' x = sh.Cells(Rows.Count, 1).End(xlUp).Row '最終行取得 For i = 1 To x '2行目から最終行まで以下を実行 n = n + 1
480 :
名無しさん@そうだ選挙にいこう :2011/06/23(木) 06:57:09.33
Workbooks(fn).Worksheets("製品名").Activate ’★★ Rows("1:" & x).Select ’★★ Selection.Copy ’★★ ThisWorkbook.Sheets("Sheet1").Activate ’★★ Range("A" & x + 1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats .HPageBreaks.Add Before:=.Range("A" & x + 1) ’★★ End With Next i End If Next sh wb.Close (False) End If fn = Dir() '次のファイルを検索 Set wb = Nothing Loop '繰り返し ThisWorkbook.Sheets("Sheet1").Copy Application.Dialogs(xlDialogSaveAs).Show Arg1:="全製品リスト.csv", Arg2:=6 End Sub
>479 ぱっと見ただけで指摘できるところ >For i = 1 To x '2行目から最終行まで以下を実行 の行と >Next i の行は不要でしょう (1行ずつコピペするならともかく、コピー元シートの行範囲を一度にコピペしてるから) それと >Range("A" & x + 1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats と >.HPageBreaks.Add Before:=.Range("A" & x + 1) の x + 1 は n + 1 にするとともに、 >n = n + 1 は n = 0 をマクロのはじめの方に追加するのと n = n + x にして .HPageBreaks.Add Before:=.Range("A" & x + 1) の次行に移動してみて。 ※出力先行位置を累積してないからうまくいってないんだと思う ※dim文で宣言するのはいいけど、型指定もしましょう
>>470 すいません。説明不足でした。
今現在実行すると、元の行+と数値分挿入してるのですが、
もとの行合わせた数値分挿入するには
どこの記述を修正すればよいでしょうか?
>482 ??? 470の例で、マクロ実行前のC3セルの値が3、C4セルの値が2だったと仮定して C3セルの値(=3)により、4〜6行目を挿入、3行目の1行分コピー、4〜6行目に貼り付け 元C4セル(行挿入により現在はC7セル)の値(=2)により、 8〜9行目を挿入、7行目の1行分コピー、8〜9行目に貼り付け これじゃダメってこと?
>>483 C3セルの値(=3)により、4〜6行目を挿入を、
C3セルの値(=3)により、3〜5行目を挿入に挿入という形にしたいです。
元の行にも上書きした上での回数分にしたいです。
>484 挿入する行数が同じなら 4〜6行目に挿入 も 3〜5行目に挿入 も、結果は同じになるよ。 挿入する行数をひとつ減らすってことかな? >483を例に修正してみると・・・ マクロ実行前のC3セルの値が3、C4セルの値が2だったと仮定して C3セルの値(=3)により、4〜5行目を挿入、3行目の1行分コピー、4〜5行目に貼り付け 元C4セル(行挿入により現在はC6セル)の値(=2)により、 7行目を挿入、6行目の1行分コピー、7行目に貼り付け ってことですか?
>484 例えば、 コピー原稿を渡されて、「10部コピーお願い」と頼まれたらそのまま10部コピーするけど 「10部にして」と頼まれた場合はコピー原稿も含めて10部ということで9部コピーするよね。 元からある行も含めて、結果的に当該セルの値の数だけあればいいのなら、 挿入する行数を 当該セルの値−1 にしたらいいから、変更箇所はわかるはず。
487 :
名無しさん@そうだ選挙にいこう :2011/06/23(木) 19:27:29.00
〉〉481 おお? 動きました(^-^)/ ズバリなアドバイスありがとうございます!
488 :
名無しさん@そうだ選挙にいこう :2011/06/23(木) 19:27:39.72
〉〉481 おお? 動きました(^-^)/ ズバリなアドバイスありがとうございます!
489 :
443 :2011/06/23(木) 22:49:42.57
>477様、皆様 思ったように印刷できました。 ご指導ありがとうございました。
入力用のシートを別に用意しといて、そこから数値を飛ばして、こんな感じの2段ずつ構成の表をしょっちゅう作らされるのが苦痛です。 |売上高 部署名|------- |仕入高 ------|------- 〇〇課|500 |------- |100 ------|------- ××課|200 |------- |300 ------|------- ★★課|150 |------- |240 上手い方法はないでしょうか? たとえば「=入力用!A2」みたいなストレートな参照式を使って、新しい部署名が1つ増えたらそのたびに見直しが増えるようなことは避けたいです。 作業用の列を作る方法がいいとは思うんですが、それをVLOOKUPとかSUMIFに参照させる式を作ったときに、あまりややこしいと みんな嫌がるんですよね。
>>490 です。すみません。表のイメージを上手く書けませんでした。
縦の罫線を、全て一直線にそろえて、見てもらえないでしょうか。
492 :
複乳 :2011/06/23(木) 23:07:18.30
>>492 ありがとうございます。ただ、計算式が難解で・・・。
私はVBAまで使いまくれるんですが、周囲の人達がお世辞にもスキルがあると言えないので・・・。
VLOOKUPとかSUMIFくらいまでが、ギリギリ使える関数と思います。ネストもなるべく2つ以内くらい。
後々のメンテとかまで考えたとき、難しいとみんな敬遠してしまいます。
いろいろ注文すみません。
>>493 それなら自分用と他人用を分ければいい
自分の仕事は自分用のブックでVBAでさっさと処理して、結果を本番用のブックにコピペ
他人がどんだけ苦労しようが知らん顔、でいいと思う
495 :
複乳 :2011/06/23(木) 23:18:53.29
>>493 その調子だとピボットテーブルも無理だろ
ボタンに登録して整形するマクロでもくむしか
ネスト2やら誰が見ても分かりやすい式、は諦めるしか無い
と思ったけど一個閃いた
vbaを使って
>入力用!A2」みたいなストレートな参照式
をセルに入力すればいいじゃないか
これなら君も楽、周りにも分かりやすい
vbaを教える必要もない
496 :
490 :2011/06/23(木) 23:35:29.88
>>495 やはり、マクロ抜きで計算式でいくのは無理っぽいですね・・・。
部署が増えたときの再メンテに、VBAが必要ってことですよね?
だとすると、ちょっと私以外の人に使わせるのは難しいかも・・・。
でも、何とかして解りやすくなるようにしてみます。ありがとうございました。
他にも何かご意見がありましたら、アドバイスいただけると嬉しいです。
497 :
複乳 :2011/06/23(木) 23:51:43.37
>>496 お前の仕事なんてしらねーよw
1から10までvbaで数式を入れるんだよ
Sub Macro1()
ActiveCell.FormulaR1C1 = "=入力用!RC"
Range("A2").Select
End Sub
こんな感じで部署の数もマクロで調べてdoloop辺りと組み合わせる
出来上がる表にはマクロの痕跡は残らない。これで人に嫌がられることもない
【1 OSの種類 .】 Windows7 64bit 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】エクセル 小数点 計算 関数 初歩的な質問で恥ずかしいのですが、 0.333333という数を計算で求め 小数点第2位まで表示で0.33と表示させています。(ここではA1とおきます) でこのA1を0.3として別の計算で使いたいのですが、もともとの数が0.333333....なので異なる計算結果が出てしまいます。 どうにか0.3として計算する方法は無いでしょうか?
>>498 ROUNDDOWN関数
(この場合ROUND関数でもいけるが。)
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 ツールチップ コメント 人が作成したシートなんですが、 セルを選択したときに薄黄色の説明枠(縦一列のどれを選択しても同じもの)がでます これはなんというものでしょうか? この枠を非表示にしたいのですが、名称がわからずコメント、ツールチップも違うものでした (作成者に聞いたら忘れたそうです) ご教示くださいますようお願いいたします
【1 OSの種類 .】 Windows7アルティメイト 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 初心者、少しだけ読めます 【4 VBAでの回答の可否】 可 質問があります。 スポーツの競技成績で一つのエクセルファイルごとに10シートぐらいの量にまとめられたエクセルファイルが数百ファイル以上あるのですが これを、この数百以上の量のエクセルファイル全てからで、各個人の成績や、細かい種目別や、条件別に 全体を統括し、種目別の順位や成績や勝率を解析できるようになりたいのですが、円滑にするためにはどうすれば よいでしょうか?VBAやaccesなどを併用するなどのことを勉強すればいいのでしょうか? ある種の教材で勉強したりやソフトなどを調べればなどの方向性の ことで 良いので、教えていただけますでしょうか?
Access使うことも検討しているなら、データを全部Accessに移しちゃえば、あとは簡単でしょ ソースはExcelブックのままじゃなくちゃならない事情とかがあるなら、Access併用するより VBAごり押しで、Excelのみで完結させた方が良いと思う その場合は、まず一つのブック内で集計を出せるようになろう この手の事をやる奴には、いきなり複数ブックの集計やろうとして煮詰まる奴も多いが まずは単一ブックでの集計をできるようになれば、あとは親オブジェクトを付けるだけで複数ブックに対応出来る
>>505 様
ありがとうございます。つまりaccessを勉強してエクセルからデーターを移すか
VBAを勉強して、集計したエクセルファイルをいくつか作って、そこから見ていく
の2通りでできるわけですね?
ありがとうございます。その方向で勉強してみます。
507 :
名無しさん@そうだ選挙にいこう :2011/06/27(月) 20:24:14.22
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 可 【4 VBAでの回答の可否】 不可 11を11 1.1を1.1 0.1を0.1と表示したい。 0.1から99までの数字を、有効ケタ数2ケタで表示させたい。 3ケタの数値及び、小数点以下2ケタの数字は異常値なので通常使わないので考えない。 可能なら表示形式のみで、作業列は使わない方向でお願いします。
office2000を持ってたんで、アップグレード版のExcel2010を買ってきました。 PCにoffice2000が入っていない状態で、アップグレード版を入れたんで、 途中で古いCDを要求されるもんだと思ってたら、 なぜかインストールもライセンス認証も全部正常に終わりました。 古いCDのチェックが全くされなかったんですけど、一体どういうことですか?
509 :
複乳 :2011/06/27(月) 20:44:23.74
>>507 無理じゃねーの
>>508 どういうこともなにもそういうこと
CDチェックするソフトもあればしない奴もあるってこと
>>507 ユーザー定義で
[>=10]0;0.0
でいいんじゃないかい?
511 :
507 :2011/06/27(月) 21:17:55.04
>>510 ありがとうございます。
表示形式でもIF関数のようなことができたんですね。
大変勉強になりました。
512 :
508 :2011/06/27(月) 21:18:49.43
相変わらず複乳は役に立たないようだなw
複乳は作業列がないとダメな子だから。
【1 OSの種類 .】Windows7 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 不可 【4 VBAでの回答の可否】 不可 表示は 9+1 1+2 5+5 の様な数式のまま、その合計をSUMで出すことって出来ますか? ↑の例えで言えば、SUMで23と出るようにしたいわけです。 その上で、画面表示(印刷時)に9+1等の数式が表示されるようにしたいです。
9+1を3つのセルに1文字ずつ分けて入れれば可能
517 :
複乳 :2011/06/28(火) 18:20:48.59
>>515 B1=LEFT(A1,FIND("+",A1)-1)+RIGHT(A1,LEN(A1)-FIND("+",A1))
B2方向にオートフィル、
C1=sum(b:b)
って感じですかねぇ
>>516-517 回答thxです
思ったより手間かかりますね・・・手動で頑張ることにします。。
>>507 有効桁数,有効数字についてちゃんと調べておきましょう。
0.1は有効桁数1です。
0.10は有効桁数2です。
あ1-1 あ1-2 こんな感じでセルに入っているとして、置換で「あ」を取りたいんだけど、できる? 置換後の文字列を「'」にすれば出来るとは思うんだけど、それ以外の方法で。
522 :
521 :2011/06/29(水) 20:39:10.14
追記:すみません、関数の方法は分かります。あくまで置換の方法
>>521 セルの書式設定を文字列にしておけば""の置換でも出来るのでは?
表示形式がyyyy/mm/ddのセルで その中から たとえば2011/06のデータだけをカウントを取りたい場合どうすればいいのでしょうか?
2011/6/1と2011/6/30のシリアル値の範囲にあるセルを数える
>>524 カウントを取りたいとは?個数を数えたいとか合計したい、っていうこと?
sumproductを使うのが吉。あとはピボットテーブル
>>523 せめて自分でやってから答えてくれ
あぁ、済まない。見当違いだったらしい。 置換を使った他の方法もいくつかやってみたけどダメみたい。 ゴメンな。悪かった。
528 :
521 :2011/06/29(水) 22:20:31.96
>>527 こちらこそキツい言い方してすまんかった
たぶん、出来ないんだよなあ。置換後のセルの表示形式を文字列にしても何も変わらんし(´・ω・`)
あるセルの種別列(仮にA列)を読み取って、 その種別ごとにシートを作成して、元のデータ内容を振り分けるためには、 どういった感じで組めばいいでしょうか。 元のシートは、オリジナルのまま保持した形にしたいです。
530 :
複乳 :2011/06/30(木) 13:21:25.17
>>529 マクロの記録を使って、シートを作ってみる
そうすれば何となくマクロのことがわかるとおもう
・fornext辺りでセル内容を転記する
・シートごとコピーして、不要な部分を削る
のどっちかかねぇ
後は「vba やりたいこと(行削除など)」で検索しながら少しずつ組み立てていけばいいんじやないかな
531 :
名無しさん@そうだ選挙にいこう :2011/06/30(木) 15:00:51.17
【1 OSの種類】 Windows7 【2 Excelのバージョン】 Excel2007 【3 VBAが使えるか.】 いいえ 【4 VBAでの回答の可否】否 【5 検索キーワード】 Googleでの検索キーワード 「excel 2007 ピボットテーブル 数値データなのにエラー」 「excel 2007 ピボットテーブル DIV/0」 大学のコンピュータ教室でWindows7+Excel2007を使っています。 「30時間でマスター WindowsVista対応 Excel2007」 www.jikkyo.co.jp/contents/75071.html の実習34のピボットテーブルについて行ったのですが、ダウンロード したファイルではできるのに、自分でファイルを作りデータを入力 したのでは、数値データが入っているのに平均等の計算ができません。
532 :
名無しさん@そうだ選挙にいこう :2011/06/30(木) 15:01:20.13
以下のようなデータをピボットテーブルで行ラベルに「種類」 値に「カロリー」を入れて平均を選ぶと「#DIV/0」と表示されて しまいます。 商品名 メーカー 種類 価格 内容量 カロリー 銀座カリー 明治製菓 中辛 250 210 240 ・・・・・ カロリーの列の表示形式を「標準」「数値」にしてもダメでした。 他のPCで知人も同様なエラーがでたのですが、そちらはなぜか表の部分を コピーして新しいExcelファイルに貼り付けてピボットテーブルを作ると 「#DIV/0」エラーがでませんでした。 いろいろ試したのですが、「カロリー」列の隣に「カロリー2」列を 作り同じデータを入れてピボットテーブルを作ると、「カロリー2」列だけ でなく、なぜか「カロリー」列でも平均がちゃんと出せてエラーがでません。 それではと、「カロリー2」列を除いて表を選択しピボットテーブルを作ると また「#DIV/0」のエラーがでます。 原因が何なのか特定てきませんでした。 なにか解決策等ありましたら教えていただけないでしょうか。 よろしくお願いします。
>>532 数値が文字列をして認識されてるんじゃね
そのデータはどこかからコピーしてきたんじゃ
× 文字列をして ○ 文字列として
>>533 コピーはしていなくて、本を見ながら、直接入力したものです。
表示形式を「数値」にしてもダメで、試しにISNUMBER関数で
「カロリー」列の値を調べたら、trueが返ってきたので
ちゃんと数字データになっているはずなんですよね。。。
>536 セルの書式−表示形式 で設定しなおしただけではダメかも。 表示形式を設定し直したセル範囲を選択し、 [F2]、[Enter]を繰り返して入力し直してみてください。
xlsm形式のファイルですが 何回開こうとしても応答なしのまま開いてくれません おそらくVBAの記述が永久ループが何かして悪さしてると思うのですが 中身を確認して不必要な処理を削除してもそもそも開けないので確認のしようがありません。 こういう場合どうすればいいのでしょうか?
セキュリティー設定変えて、マクロ実行しないで開いたらだめなの?
セキュリティを高に設定すればok
>>538 ネットワークフォルダに保存してあるのを直接開こうとすると、
同じ現象になったことあるわ
応答なしで閉じる事も出来ず強制終了した。
数時間待つか、デスクトップにコピーしたら解決したよ
購入者 買った物 山田太郎 肉 山田太郎 魚 山田太郎 野菜 伊藤二郎 肉 鈴木三郎 肉 鈴木三郎 野菜 こういうリストを、 購入者 買った物 山田太郎 肉 魚 野菜 伊藤二郎 肉 鈴木三郎 肉 野菜 こういう風にしたい(購入者欄の重複部分だけを空白にしたい)のですが、 具体的にはどういう操作をすればいいのでしょうか? Excel2007を使っています
ピボットテーブル使えば出来るんじゃね
どういじったのかしらんけど ざっと見た限りでは lastRow = Worksheets("Sheet1").Range("B" & Rows.Count).End(xlUp).Row lastCol = Worksheets("Sheet1").Cells(1, Columns.Count).End(xlToLeft).Column myVal = Worksheets("Sheet1").Range(Cells(2, 1), Cells(lastRow, lastCol)).Value この3行をセットで考えないといけないと思うよ
2010です ユーザー定義の表示形式を利用して -1→-π -0.500→-π/2 といった具合に表示させたいのですがうまくいきません。 どなたかご教示願います。
表示形式はあくまでも「表示」を定義するものであって、演算は出来ない 勘違いしないように
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 VBA コピー 別シート 行を挿入貼り付け 複数人あるデータリストをフォームからオートフィルタをかけて抽出し 別シートに個人別に貼り付けをしたいのですが '-----抽出データの最終行を求める---------- Worksheets("伝票").Activate myRow2 = Worksheets("伝票").Range("A3").End(xlDown).Row Worksheets("伝票").Range("A3:G" & myRow2).Copy '抽出データを範囲選択コピー Worksheets("個人別シート").Activate Worksheets("個人別シート").Rows("4:4").Insert Shift:=xlDown '行を挿入し貼り付け '-------------------------- ペースト時どうしても空白の行1行しか貼り付けされません 上記コードの最終行の記述はどのようにしたらよろしいのでしょうか よろしくお願いします
insertはただの挿入。貼りつけならpasteしないと。
550 :
548 :2011/07/02(土) 11:45:45.69
説明不足で申し訳ございません 別シートに行を挿入する理由が、貼り付けした内容を集計する関数が一番最終行に記述しているためです 個人別シート 1 2 日付 名前 品名 入庫 出庫 3 4 5 6 累計 0 0 0 Insert部分をPasteにすると オブジェクトは、このプロパティまたはメソッドをサポートしていません。(Error 438) が表示されて頓挫している状態です 上記の形にしている理由としてはペースト時最終行を、6行目の累計を表示・自動計算するVBA表記の仕方がわからず、とりあえずの苦肉の策としているためです
>>548 のままでちゃんと動作したよ。
.End(xlDown)がちゃんと判定されてないんだろうから、データが悪いんだろう。
途中に空白セルがあるとか。
552 :
548 :2011/07/02(土) 13:43:32.03
上記コードをマクロに組み込み読み込むと動作するんですが VBAに落とし込むとちゃんと動作しないんですよorz オートフィルタの抽出結果をコピーするってのがまずいのでしょうか Private Sub 表示bt_Click() Dim 検索値1 As String 'リストボックスに変数を宣言 Dim myRow1 As Long '列の変数を宣言 Dim myRow2 As Long '列の変数を宣言 検索値1 = 名前リストボックス.Text '検索値1に名前リストで選択したtextを代入 If 検索値1 <> "" Then '検索値1に何かしらの文字列が代入された場合の処理 ActiveSheet.Unprotect 'シートの保護を解除 'アクティブシートのA2からB最終列をオートフィルタをかけ名前のところを検索値1で検索 ActiveSheet.Range("$A$2:$B$65536").AutoFilter Field:=2, Criteria1:=検索値1 ElseIf 検索値1 = "" Then '検索値1が空欄の場合の処理 MsgBox "名前が選択されていません。" 'エラーメッセージの記述 名前.SetFocus '名前リストにカーソルを戻す Exit Sub End If 名前.Value = "" '-----抽出データの最終行を求める---------- Worksheets("伝票").Activate myRow2 = Worksheets("伝票").Range("A3").End(xlDown).Row Worksheets("伝票").Range("A3:G" & myRow2).Copy '抽出データを範囲選択コピー Worksheets("個人別シート").Activate Worksheets("個人別シート").Rows("4:4").Insert Shift:=xlDown '行を挿入し貼り付け '-------------------------- という一連の流れになってます
553 :
546 :2011/07/03(日) 00:35:45.50
>>547 返答ありがとうございます。
それを聞いていろいろ試してみたのですが
πを3.14としてではなくπをそのまま数字の後につけるにはどうすればいいのでしょうか?
>>553 >πを3.14としてではなくπをそのまま数字の後につけるにはどうすれば
> いいのでしょうか?
-1π とか 0.5π でいいなら、セルの表示形式のユーザー定義で @"π"
を指定すればいい。
-1π を -π にしたいとか、0π は 0 にするなら条件付の書式でできる
かも、使ったことないけど。
0.5π を π/2 にするのは俺の頭では不可能とでた。
>>546 ところで関数のPI()は知っているよね。
いや、知っているのなら別にいいんだ。
>>556 =PI()存在はしってますよー
とりあえず分子をπにするのは表示形式のユーザー定義から設定するのは無理みたいです
回答ありがとうございました
関数の構文でエラーが出たのですがどこに問題があるのか分からず・・・ ちょっと見てもらえないでしょうか 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 トラブルシューティング:数式のエラー(エラーメッセージのリンクから) とある会計処理用の表なのですが、I列に金額の項目があり、 マクロで別表からずらずらずらー、っと該当品目の金額を上から詰めて並べ、 その末尾の行で合計金額を割り出します。 表の大きさがその時々によってまちまちなので、どの行に置かれてもいいように 【=SUM(OFFSET(ADDRESS(ROW(),COLUMN()),-1,0,-ROW()+3,0))】 (合計金額セルのすぐ上のセルから見出しを除いた先頭行までの合計を算出) と入力したところ、「入力した数式は正しくありません」とエラーを吐かれました。 エラー箇所は「=」の後ろから全部を指定されます。 括弧の数も引数の数・記述にも問題はないのでどこがエラーになってるのか見当がつきません。 金額の入力・計算はは全てI列でのみ行い、列間の処理は一切行いません どなたかご指摘お願いします。
559 :
558 :2011/07/03(日) 19:00:11.35
おっと訂正・・・ 数式の最後の0は1に直して解釈してください 幅0の範囲ってなんだorz
最終行を出して計算しちゃだめなの?
>>558 OFFSETの 基準セルがセル参照ではなく、
文字列(ADDRESS関数は(参照)を表す*文字列*を返す)だからじゃない?
なので
=SUM(OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),-1,0,-ROW()+3,1))
かな?
>>561 ありがとうございます
OFFSET関数にADDRESS関数を直でかませちゃだめなんですか・・・
INDIRECT関数挟んで試してみます。
>>558 です
INDIRECTを入れて計算させてみたところ、正常に数字が出てきました。
的確なアドバイスをありがとうございました。
なかなかうまくいきません。どなたかご教授お願いします。 【1 OSの種類 .】 MacOSX 【2 Excelのバージョン 】 Excel2011 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 マクロ 抽出 行 700行あるシートの中から 特定の文字列を含むものを行単位で別シートに移したいのですが、うまくいきません。 特定の文字列とは シートBのA列に200件ぐらいまとまっています。 マクロで組もうかと思いましたが シートBのA1をコピー ↓ シートAのB列を選択、完全一致で検索。 ↓ 該当行をコピー ↓ シートcに貼り付け。該当が無い場合は シートDに貼り付け。 延々と繰り返していくようなマクロを組みたかったのですがうまくいきません。 これをマクロで記録してVBで編集しようとしたら検索する文字列が文字列として 記録されているので A1.2.3.4.5....と、繰り返し行ってくれるようなモノになりません。 どうしたらいいでしょうか…。
565 :
564 :2011/07/04(月) 00:00:39.83
566 :
複乳 :2011/07/04(月) 00:44:07.08
567 :
名無しさん@そうだ選挙にいこう :2011/07/04(月) 02:22:53.56
自分の入力でなく、他のソフトでエクセル形式のファイルを出力する 場合、スラッシュを含む数字のデータが日付に変換されてしまいます。 そのまま表示する方法を教えてください。
「他のソフト」の問題なのでスレ違い 「他のソフト」の作者(製作会社)に、スラッシュを含む数字をエクセル形式のファイルを出力する場合は 先頭に ' 入れて出力するようにでも要望出しておけ
>>567 csvならテキストエディタで加工するかVBAで読み込む
xlsなら「他のソフト」側で対策が必要
>>545 例えばK列に読み込み先を変更したい場合、
lastRow = Worksheets("Sheet1").Range("K" & Rows.Count).End(xlUp).Row
lastCol = Worksheets("Sheet1").Cells(1, Columns.Count).End(xlToLeft).Column
myVal = Worksheets("Sheet1").Range(Cells(2, 11), Cells(lastRow, lastCol)).Value
のように変更すればOKでしょうか?
インデックスが有効範囲にないって出てしまうので、他にどんな感じに修正すればいいでしょうか?
>>568-9 エクセルの事前の設定云々でなく仕様みたいですね。
でもヒントになりました。回答有難うございます。
マクロで書きだした配列の数値が 4.56026E+12 とかなってるのですが、事前にセル書式を固定みたいなのできますか?
ある列の値別に行の内容をまとめて、 それぞれのシートに新規で挿入したいのですが、 シートのネームは任意の文字列+連番にしたいです。 どうしたらいいでしょうか
575 :
複乳 :2011/07/05(火) 16:54:13.08
>>575 どんな感じのプログラミングになりますか?
577 :
複乳 :2011/07/05(火) 18:23:18.77
>>576 列の値が変わるまで行の内容をまとめて
シートを作成、任意の文字列+連番
値が変わったところから行の内容をまとめて
と繰り返し
ブックごとアップロードしてくれればヒマだしつくるよ
579 :
複乳 :2011/07/05(火) 20:16:47.11
580 :
複乳 :2011/07/05(火) 20:17:02.77
パスは4321ね
582 :
複乳 :2011/07/06(水) 00:16:37.39
583 :
複乳 :2011/07/06(水) 00:19:17.26
>>655 のダウソ数8
7人も複乳のコードをチェックしてんのかw
>>583 本当にありがとうございます!
連番は、地域ごとのみで付けることってできますか?
東京都1/東京都2/埼玉県1/埼玉県2/埼玉県3/
な感じです。
シートの並びも、都道府県でまとまってくれると幸いですが・・・
>>583 バグ?的なところで、住所を昇順などで並び替えしないと、
別の地域を挟むと何度も同じ地域を新規シートでつくってしまうので、
ここだけでもなんとかできればよいのですが・・・
587 :
複乳 :2011/07/06(水) 12:31:06.17
>>587 なにからなにまですいません・・・ありがとうございます!
>>471 このマクロで、0だった場合はその行をトルツメする場合、
どのように改変すればいいでしょうか?
何年も前に作成し、定期的にちょこちょこ更新しているExcelファイルがあるんですが、 最近このファイルを開くと このファイルを開こうとしたときに、Officeファイル検証機能によって問題が検出されました。 このファイルを開くのはセキュリティ上危険である可能性があります。 というメッセージが表示されるようになってしまいました。 最近の自動更新でこの検証機能というのがついたみたいですがこのファイル自体に問題があるのでしょうか。 このメッセージが出ないようにする方法はありますか? バージョン:Excel2003SP3 OS:XPProSP3
591 :
名無しさん@そうだ選挙にいこう :2011/07/07(木) 22:25:05.91
初めてここにきました。 どなたか教えてください。 何年かぶりでエクセルを使って文書作成しています。 金額を入力していて、ゼロではなく金額が入らない箇所という意味で 斜線ではなくて、横棒を入れたいのですが、どうしてもやりかたが判りません。 どうすればいいのか途方にくれてます。お願いします。たぶんエクセル2003です。
-
>>591 セルを右クリック→セルの書式設定→フォントタブ→取消し線にチェックを入れる→OK
で、実際にスペースキーを打つと取消し線が入る。
でも、文章作成はword使うのがいいと思う。
594 :
名無しさん@そうだ選挙にいこう :2011/07/07(木) 23:35:52.78
>>593 で き ま し たああああああ。 有難うございました。よっぽど定規で横棒入れてやろうかと もうグレそうになってました。(涙) 助かりました。本当に有難うございました。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 エクセル 表示形式 ドロップダウン 数値 セル 等を組み合わせて ドロップダウンメニューの使い方について質問させてください リストとして使用するセルに実際に入力されている数値と、表示する数値を別にしているとき(例:実数値20,30,40→表示は2,3,4) ドロップダウンを開いている間は表示数値(2,3,4)通りなのですが 選択すると実数値(20,30,40)が表示されます これを、選択した後も表示数値(2,3,4)のままにする方法はありますか?
予め項目が用意されているcsv(Aに名前の列、Bに年齢の列…)に、 外部のxlsやcsvをインポートし、それぞれの項目に対して振り分けを行いたいです。 外部のcsvやxlsはものによって、年齢や名前などの列の箇所がばらばらなので、 インポートした後に「年齢の項目はインポート元のどの範囲にありますか?」のように ユーザが範囲を入力する形(リストボックスなどでA2:A100のように)にしたいです。 聞かれる回数は、インポート先データに予め用意されている1行目の項目名と数を自動的に読んで、 汎用性を高めたいです。 マクロで対応できますか?
-220+{22.4/(1+9.23)}+{22.4/(1+9.23)^2}+{22.4/(1+9.23)^3}+ {22.4/(1+9.23)^4}+{22.4/(1+9.23)^5}+ {30+x-7.6x+0.4x/(1+9.23)^6}+{30+x-7.6x+0.4x/(1+9.23)^7}+ {30+x-7.6x+0.4x/(1+9.23)^8}+{30+x-7.6x+0.4x/(1+9.23)^9}+ {30+x-7.6x+0.4x/(1+9.23)^10}+{19.4+x-5.6x+0.4x/(1+9.23)^11}+ {19.4+x-5.6x+0.4x/(1+9.23)^12}+{19.4+x-5.6x+0.4x/(1+9.23)^13}+ {19.4+x-5.6x+0.4x/(1+9.23)^14}+{19.4+x-5.6x+0.4x/(1+9.23)^15}+ {19.4+x-5.6x+0.4x/(1+9.23)^16}+{19.4+x-5.6x+0.4x(1+9.23)^17}+ {19.4+x-5.6x+0.4x/(1+9.23)^18}+{19.4+x-5.6x+0.4x/(1+9.23)^19}+ {19.4+x-5.6x+0.4x/(1+9.23)^20}+60=0 のxをエクセルで出す方法はないでしょうか?
>>597 良く解らんが、A1に1でも入れとく。
C1〜C20に 1〜20をいれとく。
D1に、 共通の分母 (1+9.23)^C1 を入れ、D20までコピー。
E1〜E20に、あなたの言うxを「$A$1」に置き換えた、{}で囲んだ計算式を個別に入れる。もちろん分母はD列から持ってくる。
F1に、単純なSUM式で、方程式の左辺をそのまま書く。
後はゴールシーク機能で、F1=0となるように$A$1の値を変化させればよいのでは?
>>598 だけど、もちろんF1には「=SUM(E1:E20)-220」とだけ書けばいいように、
ちゃんと他の列を仕上げるんだよ?俺は面倒だから実際の検算までしてないけど。
600 :
複乳 :2011/07/08(金) 23:47:51.39
>>596 インポートがどうとかよりも手動で並び替えたほうが早いんじゃないの
その例はもちろん対応できるし、マクロは人の気分で変わるようなものじゃない限り、ほぼ100%対応できるよ
601 :
名無しさん@そうだ選挙にいこう :2011/07/09(土) 00:39:46.95
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━ 【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2002 【3 VBAが使えるか .】 少しだけ 【4 VBAでの回答の可否】 可 ややこしい内容ですみません。 A4の用紙を縦横に切って4分割して使う用途のフォーマットが 有ったとして、分割したそれぞれに1〜番号を振りたい。 プリントアウトが1枚の場合、左上が1、右上が2、左下が3、右下が4といった感じで。 でもそれが10枚とした場合、番号が1-40番まで振られるが それぞれをプリントアウト出力した場合、1枚目1-4、2枚目5-8と いった感じで出力され、重なった出力物をまとめて4分割カットした場合、 1枚目1の次の紙が2枚目の5、次が3枚目の9となる。 最終的に4分割されたものを1〜の連番にしようと思うと いちいち入れ替えを行う必要がある。 出力枚数は変動で1枚〜20枚程度となる。 どの出力枚数化においても4分割した 左上ブロック→右上ブロック→左下ブロック→右下ブロックを 重ねると1〜の連番になるようにするにはどうすれば良いでしょうか? 取り合えずセルのA1=左上、B1=右上、A2=左下、B2=右下として ご教示いただきたくよろしくお願いします。
602 :
複乳 :2011/07/09(土) 00:53:33.16
>>601 大体やりたいことは分かるけど
番号を振るってどこにどうやってフルの
あとページが下に進むのか右に進むのかも不明
1ページで使うセル範囲もどこからどこまでかも良く分からない
603 :
601 :2011/07/09(土) 00:54:51.22
スレ汚しすみません 1 2 3 4 1枚出力 12 34 56 78 2枚出力 123 456 789 101112 3枚出力 1234 5678 9101112 13141516 4枚出力 m = 出力したい枚数 n = 出力ごとにn+1(n = 1 to m) m*0+n m*1+n m*2+n m*3+n 睡魔の狭間で何となくひらめきました。 事故解決しました。mm
604 :
複乳 :2011/07/09(土) 01:05:13.38
オメデトウ
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 テキストデータを、Sheet("テキストデータ")のセルA1に貼り付け、 マクロでSheet("明細")のセルB5を先頭に各セルへデータを書きたいです。 ------------------------------------------- テキストデータ 2011/06/28s●ss◆◆S◆◆◆ss3,700sss▲▲s 2011/07/03s●ss◆◆◆ss5,500sss▲▲▲s 2011/07/10s●ss◆◆S◆◆◆ss2,800sss▲▲s ------------------------------------------- s:半角スペース S:全角スペース ●:文字列(全角で1〜3文字) ◆:文字列(全角で2〜17文字) ▲:文字列(全角で0〜20文字) このとき、◆の文字列が全角スペースで区切られているときは、同じセルの 中に入れて、下記のようにしたいです。 ------------------------------------------------------ A B C D E 1 2 3 4 5 2011/06/28 ● ◆◆S◆◆◆ 3,700 ▲▲ 6 2011/07/03 ● ◆◆◆ 5,500 ▲▲▲ 7 2011/07/10 ● ◆◆S◆◆◆ 2,800 ▲▲
明細がどう絡むのかよくわからないけれど、エディタで半角スペースをタブかカンマあたりに 置換してみてはどうか?
> エディタで半角スペースをタブかカンマあたりに置換 じゃダメだな 「"1個以上の"半角スペースを"1個の"タブかカンマあたりに置換」しないと A B C D E 2011/06/28 ● ◆◆S◆◆◆ 3,700 ▲▲ ではなく A B C D E F G H I 2011/06/28 ● 空セル ◆◆S◆◆◆ 空セル 3,700 空セル 空セル ▲▲ になってしまう つまり、「s/ +/\t/g」ってこった まぁエディタでやるかVBAでやるかは好きにすれば良いが
Excel2003、2010などを使っています カーソルキーでアクティブセルを移動させる時に 画面端まで移動しないと画面がスクロールしませんが これを一番端ではなく画面の端から4セルぐらいのところで 画面をスクロールさせることは出来ないでしょうか …出来ないような気がしていますが出来たら嬉しいなぁと
イベントマクロでいけんじゃね?
610 :
複乳 :2011/07/10(日) 21:33:21.54
611 :
複乳 :2011/07/10(日) 21:42:27.68
>>608 ・スクロールロックキー(ScrLk)を使う。
・マウスホイールを使う。横向きにスクロールできるものもある
・イベントマクロでウィンドウサイズとセルの行列のサイズを考えて手動で計算する
表示されてるセル範囲の取得ができれば一発なんだろうけど
どれもパッとせんなぁ
回答がなければプログラム板のvbaスレにいってはどうかな
WindowsXP Pro Excel 2003 VBA…いいえ VBA回答…否 検索…集計 抽出 関数 月火には毎週10個、水〜日には0〜5個といった感じで 『特定の曜日には確実に払い出しがあり、他の曜日にはたまに払い出しがある』 商品があります。 毎月シートを分けて日付を横一列に並べ、その下に払い出し数(ない日は0) を入力しているのですが、先日上司に、 『払い出しがあった日のデータだけを抽出して、いつもの表のように並べてくれ』と言われました。 関数とかでなんとかならないかな?と思ってこちらに質問させていただきました。 よろしくお願いいたします
>いつもの表のように並べ いつもどう並べているのか言わないとどうしようもないけれど、 とりあえず曜日の下の払い出し個数が0の場合は、曜日を表示しないようにするとか? if払出=0,"",曜日
>>612 関数では出来なくはないけど、かなりややこしくなるので、止めておいたほうが。
配列数式になって、応用するのに辛いと思う。
日付が縦に並んでいるなら、オートフィルタで抽出してコピーできるけど、横だし、どうするのが一番手っ取り早いか・・・
615 :
複乳 :2011/07/10(日) 22:33:30.42
>>615 うん、それしかないかなあ。入れ替えて抽出して、また入れ替えてコピー
基本、出来れば日付は縦にとってほしい・・・・エクセルがそういう作りだから。
617 :
612 :2011/07/11(月) 00:45:31.78
レスありがとうございます。
>>613 いつもの=日付を横一列〜(上記)です。説明不足でごめんなさい。
>>614 ,615,616
最初にオートフィルタの横列版はないかと検索してましたw
作りの問題なんですね。元ファイル直したいけど上司の意向が・・・
別シートか何かでコピペをシコシコしていくことにします。ありがとうございました。
VBA可なら、横のフィルタマクロもあるけどね 俺なんか縦のフィルタも、ほとんどExcelのオートフィルタ使わずフィルタマクロ使ってる オートフィルタは痒いところに手が届かないからな
行列入れ替えて貼り付けを自動記録すりゃいいじゃん
>>620 そのレベルができない人用に作らないといけないので・・・
だからあんたが自動記録してマクロにすればいいじゃん。馬鹿?
623 :
613 :2011/07/11(月) 20:11:15.29
こうやって後だしが出ないようにテンプレつかってんじゃね?
VBAでも回答欲しいなら質問者は最初からそう書けよ。
一応回答な。
>>617 >613の関数でとりあえず表を作る。
A1=IF(A2=0,"",1) B1=IF(B2=0,"",2) ・・・
A2=払い出し数 B2=払い出し数
次に以下操作する。
表の範囲を選択する→編集→ジャンプ→セルの選択
→空白セルにチェック→編集→削除→列全体
これが関数でできるやりかたかな。
別のデータから連続してセルに色々貼り付ける自動マクロ作ってるんですが、 コピペ開始する位置を自動的に取得したいので、A列の最終行の次(空白行)から始めたいので、 それを取得できるマクロプログラムだけ教えていただけますでしょうか? 開始位置座標の変数はなんでもOKです。
625 :
複乳 :2011/07/12(火) 12:56:12.56
>>624 Range("A65535").End(xlUp).Row
rowは最終行になるから、次の空白行は+1するの忘れずにな
マクロの記録だとA65535洗濯して、ctrl+↑
>624 複乳さんに先こされてしまいましたが 質問者のExcelのバージョンが書いていないので、2007以降でも兼用できる方法を dim tate_end as long 〜 tate_end = Cells(Rows.Count, "A")End(xlUp).Row + 1
× , "A" ○ , 1 × + 1 ○ Offset(1) var = Cells(Rows.Count, 1).End(xlUp).Offset(1).Row
629 :
名無しさん@そうだ選挙にいこう :2011/07/13(水) 19:08:38.95
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━ 【1 OSの種類 .】 Windows 7 Professional 【2 Excelのバージョン 】 Excel 2010 【3 VBAが使えるか .】いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】VLOOKUP 複数 / エクセル 名簿 スレ汚し失礼いたします。 初心者ですので、拙い文章・理解だと思います。 みなさんの知恵貸してください。宜しくお願いします。 今、エクセルで名簿を作成しております。 表Aと表Bがあります。 続きます。
630 :
名無しさん@そうだ選挙にいこう :2011/07/13(水) 19:11:30.48
上記の表Aと表Bはこのようになっています。 表AのB列のセルには何も入っていません。 表Aと表Bでは、北川という名前が一致していますので、表BのB3を表AのB2に自動で入れるという風にはできないのでしょうか? これが3000行ほどあるので、一度に複数に対して設定はできないのでしょうか? 重ねて宜しくお願いします。
631 :
名無しさん@そうだ選挙にいこう :2011/07/13(水) 19:13:54.68
表A A B 1| 相山 | (空白) 2| 北川 | (空白) 3| 岡田 | (空白) 表B A B 1| 山口 | (海) 2| 武田 | (空) 3| 北川 | (陸)
633 :
名無しさん@そうだ選挙にいこう :2011/07/13(水) 19:21:15.40
>> 629
>>630 >>631 です。
複数にわたってしまい、申し訳ありません。
>>632 さん
はい。シートAとシートBです。宜しくお願いします!
>>633 vlookupのもっとも基本的な部分でクリアできそうだけれど、
グーグルでのvlookup検索で得られた結果は?
どのサイトのvlookupを読んでもその内容のまんまだよ。
一度に複数の場合はオートフィルでやるもよし。
635 :
名無しさん@そうだ選挙にいこう :2011/07/13(水) 20:59:08.84
636 :
名無しさん@そうだ選挙にいこう :2011/07/13(水) 21:11:20.21
637 :
複乳 :2011/07/13(水) 21:17:07.57
>>635 =IF(ISERROR(VLOOKUP(A1,表B!A:B,2,0)),"",VLOOKUP(A1,表B!A:B,2,0))
こんな感じ
=VLOOKUP(A1,表B!A:B,2,0)
だけでもいいけどエラー値がうっとうしい
638 :
名無しさん@そうだ選挙にいこう :2011/07/13(水) 21:24:08.04
>>634 さん
最初に質問してから、ご指摘通りのオートフィルタにたどり着きました。
リスト範囲:表A$A$1:$A$3
検索条件範囲:表B$A$1:$A$3
にしましたが、一番上の所だけ表示されて他のセルは、細かくたたまれてしまいました。
639 :
名無しさん@そうだ選挙にいこう :2011/07/13(水) 22:25:27.28
>>636 さん
言い訳のつもりで書き込んだのではありませんでしたが、お気に障ったのでしたら申し訳がございません。
>>複乳
ありがとうございます。
範囲や検索値の指定が悪かったのですね。ありがとうございます。
これで娘の誕生日に帰れそうです。
スレの住人の皆さん本当にありがとうございました。失礼いたします。
640 :
名無しさん@そうだ選挙にいこう :2011/07/14(木) 14:29:09.67
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 自動記録を少し弄る程度です 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 マクロ 関数 計算結果のみ表示 Dim last Range("A65536").Select Selection.End(xlUp).Select last = ActiveCell.Row Range("D5").Select ActiveCell.FormulaR1C1 = "=IF(R[-1]C[-3]=RC[-3],"" 〃"",MATCH(RC[-3],Sheet2!C1,0))" Range("B5").Select ActiveCell.FormulaR1C1 = "=IF(RC[2]="" 〃"","" 〃"",INDEX(Sheet2!C2,RC[2],0))" Range("C5").Select ActiveCell.FormulaR1C1 = "=IF(RC[1]="" 〃"","" 〃"",INDEX(Sheet2!C3,RC[1],0))" Range("B5:D5").Select Selection.AutoFill Destination:=Range("B5", Cells(last, 4)) Range("B5", Cells(last, 4)).Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _ xlNone, SkipBlanks:=False, Transpose:=False 関数のMATCH INDEXを使ってSheet2からデータを呼出後に コピー→貼付(値と数値の書式)として関数を数値データにしてるのですが 最初から数値データとして呼出をする方法はないでしょうか?
641 :
複乳 :2011/07/14(木) 14:34:37.92
>>640 質問のポイントが良く分からんのだが、
関数で計算した結果を、数値として入れなおしてる(関数を消してる)ってこと?
だったら、最初から関数使わずに、VBAで算術処理してもいいんじゃないの?
セル範囲の数字を、数値の配列に貯め込んで、まるっと代入してもいいし。
643 :
640 :2011/07/14(木) 17:09:50.11
>>641 >>642 判りにくくて申し訳ないです。
簡単に・・・
Range("D5").Select
ActiveCell.FormulaR1C1 = "=MATCH(RC[-3],Sheet2!C1,0)"
だと
セルD5に数式=MATCH(A5,Sheet2!C1,0)が入ってしまいます。
数式は必要なく、結果だけを出したい場合は、どうすれば良いでしょうか?
range クラスの select メソッドが失敗しました。 と出て、以下の最終行のところでエラーが出てしまいます。 エラーの名前で出てきてぐぐった対策方法は試してみたつもりですが・・・ Public OpenFileName As String Private Sub CommandButton1_Click() OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls") Workbooks.Open OpenFileName RunYN = MsgBox(OpenFileName & "を開きます。並び替えを実行しますか?", vbYesNo) Select Case RunYN Case vbYes Call Run Case vbNo myMsg = "キャンセルしました" Case Else myMsg = "キャンセルしました" End Select ' Narabikae Macro 'End Sub Sub Run() Dim myMsg As String Dim Fname As String Fname = Dir(OpenFileName) Windows(Fname).Activate Worksheets("Sheet1").Select Columns("J:J").Select
645 :
644 :2011/07/14(木) 17:27:06.06
>>644 長文なので途中で切りました。
【1 OSの種類 .】 Windows 7 Professional
【2 Excelのバージョン 】 Excel 2010
です。
エラーの意味はなんとなくわかったのですが・・・対処法をご教授頂ければと・・・
646 :
複乳 :2011/07/14(木) 17:44:34.16
>>644 ↓を参考にしてくれ。
http://park7.wakwak.com/~efc21/cgi-bin/exqalounge.cgi?print+200903/09030088.txt 先に解決策を書くと、
・sub run()は標準モジュールに記述。
・CommandButton1はシートモジュールに記述するが、内容はCall Runだけ。
・コードは全てSub Run() にまとめる。
Sub Run()
Public OpenFileName As String
OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls")
(中略)
Worksheets("Sheet1").Select
Worksheets("Sheet1").Columns("J:J").Select
End Sub
コマンドボタンの置いてあるシートには
Private Sub CommandButton1_Click()
Call Run
End Sub
647 :
複乳 :2011/07/14(木) 17:47:29.04
>>644 もう一つは
Worksheets("Sheet1").Select
Columns("J:J").Select
を
Worksheets("Sheet1").Columns("J:J").Select
とするだけ
activesheetとselectするsheetが違うとうまく動かない、らしい
よく分からないんだが仕様って奴かねぇ
648 :
642 :2011/07/14(木) 17:52:48.38
649 :
複乳 :2011/07/14(木) 17:58:34.10
>>643 WorksheetFunctionはこんな感じで使う
Sub a()
With Worksheets("Sheet1")
.Range("D5").Value = Application.WorksheetFunction.Match(.Range("a5"), Sheets("sheet2").Range("$a:$a"), 0)
End With
End Sub
>>646 アラート後だとフォーカスを見失う?ようわからない仕様なんすかね・・・
とりあえず解決しそうです。どもでした。
651 :
名無しさん@そうだ選挙にいこう :2011/07/15(金) 10:59:51.95
【1 OSの種類 .】 Windows7 home oem 【2 Excelのバージョン 】 Excel 2010 oem 【3 VBAが使えるか .】いいえ 【4 VBAでの回答の可否】 否 ふりがな機能が使えません。 右クリックメニューにもありません。 ホームタブ フォントにもアイコンなし リボンのユーザー設定でも復活しません。 PHONETIC関数でもエラー表示 Web AppでPHONETIC関数を使うと漢字のまま表示されます。 解決方法お願いします。
652 :
名無しさん@そうだ選挙にいこう :2011/07/15(金) 12:15:42.80
653 :
643 :2011/07/15(金) 17:47:16.98
>>648 >>649 リンク先のHP等、大変参考になりました。
早速、少しづつ書換えていこうと思います。
ありがとうございました。
654 :
名無しさん@そうだ選挙にいこう :2011/07/15(金) 22:38:44.02
【1 OSの種類 .】 Windows 7 【2 Excelのバージョン 】 Excel2010(2007) 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 関数 A B C 平均 合計 評価 1| 5 16 2| 1 8 3| 3 12 4| 2 11 5| 4 11 6| 4 9 評価のところに平均が3以上だったらS、←以外の場合で合計が10よりも大きかったらA、どっちにも当てはまらなければBと入れたくて C1に=IF(A1>=3,IF(B1>10,"S","A"),"B")と関数を入れてオートフィルをしたのですがC4がAになりません。 対処法をご教授お願いします。
>>654 =IF(A1>=3,"S",IF(B1>10,"A","B"))
>>654 式が間違っているのでしょう。
=IF(A1>=3,"S",IF(B1>10,"A","B"))
>>655-656 なるほどSの方を先にまとめてから残りもやるのか…ネスト難しいorz
覚えておきます。ありがとうございました
658 :
名無しさん@そうだ選挙にいこう :2011/07/16(土) 14:29:28.73
二つの項目の片方を縦軸、もう片方を横軸として1つの折れ線グラフを作りたいのに、 作ろうとすると、エクセルの通し番号が横軸、二つの項目が両方縦軸になって、 二つの折れ線グラフになってしまいます・・・二つの項目のデータの関係を調べたい んです。 どうしたらいいですか?
660 :
名無しさん@そうだ選挙にいこう :2011/07/16(土) 15:00:49.98
>>659 ありがとうございます。一応データに関連性があるので
散布図も特徴的な形になりました。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 条件付書式 COUNTA COUNTIF A B C D 1| 3 太 太 太 2| 細 細 細 3| a 太 太 太 4| 細 細 細 5| 細 細 細 6| 4 太 太 太 7| 細 細 細 Aの行に何か値が存在したらその行は太字、存在しなかったら標準(細字) という書式にしたいのですが、条件付書式の数式にどのような数式を書いたらうまくいくのか よく分かりませんでした よろしくお願いします
>>661 =$A1<>""
とすればよいんじゃね?
>>662 即レス、感謝です
うまくいきました
簡潔なお答えありがとうございました
まさか、こんなシンプルな式でうまくいくとは><
エクセル2003で質問です。 エクセルではない所からコピーしたものをエクセルに貼付しようとするとエラー?(形式が合わない、サイズがあわないとかで)になります。 ダブルクリックして入力はうまくいくのですが…。マクロでやりたいと思っているので入力操作を簡略化したいのです。 なにか対策方などはないでしょうか? 御教示願います。
>エクセルではない所 詳しく。
666 :
複乳 :2011/07/17(日) 10:17:05.38
>>664 エラーの時はエラーメッセージをそのまま書いて欲しい
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 A1=1のとき、セルの書式設定を「"番号"#」とすると「番号1」といった形で 表示されますが、たとえば上記例の"番号"という文字列を、他のセル値参照に 切り替えたいのですが可能ですか? A1=1、B1=テストとしたとき、 A1の表示がテスト1とされるような感じで。 これはC1=1としてA1=B1&C1としても似た内容が得られますが、 セルの書式設定にて可能であればご教示ください。
>>668 そうですか、仕方ないですね。
ありがとうございました。
シートイベントマクロで何とかします。
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 どんどこ増える帳簿に自動で整理番号を割り振るマクロを作ろうと思い、 番号を割り振る関数を行頭に作成 ↓ 絶対に書き込みをしない空きセルにハイパーリンク作成 ↓ 「関数コピー>ハイパーリンク選択>リンク先にコピー」の操作を記録 とやろうとしたのですが、ハイパーリンクを作ったところで#VALUE!エラーを吐かれました・・・ リンクの書式は 「=HYPERLINK(OFFSET(L2,0,0,COUNTIF(A:A,">1000"),1),"作業番号")」 ※Aの列は年度の数字が必ず入る 見ての通り、オフセット関数で『”年度”の記入されているL列のセル』を自動で選択しようと言う目論み この関数の間違いの分かる方、もしくは別の手順で目的達成できるよ!という方はおりませんでしょうか VBAが扱えればかゆいところに手が届くんでしょうがVBA関数の知識が全くなくてorz
671 :
名無しさん@そうだ選挙にいこう :2011/07/18(月) 10:59:21.22
>>670 =HYPERLINK("[ブック名.xls]シート名!セル",〜
というように指定しないといけないと思います
HYPERLINKの第一引数は「参照」ではなく「文字列」で指定しなきゃダメだよ 参照ってのは「=A1」で、文字列ってのは「="A1"」ね あと、セルへのリンクの場合、同シート内でもブック名とシート名も必要 OFFSET関数はセルへの参照を返す関数なので、こういう場合はセルのアドレス文字を返す ADDRESS関数を使用する =HYPERLINK(ADDRESS(COUNTIF(A:A,">1000")+2,12,1,TRUE,"[ブック名.xls]シート名")) COUNTIFの後の+2は、君がOFFSETの基準セルにしたL2の「2」を補完したもの 次の12は、12列目、つまりL列を数字で表したもの
>>671 ありがとうございます
ブック名、シート名を入れて#VALUE!エラーはなくなったのですが、
今度は「指定されたファイルを開くことができません」と言って怒られます
ブック名をファイルのあるディレクトリのフルパスに変えてみてもだめでした
なにかオフセットの前後に足りない関数とかがあるのでしょうか・・・?
674 :
673 :2011/07/18(月) 12:10:45.50
ぉぉぅ書き込んでる間にレスが・・・
>>672 やっぱり返値の形式があってませんでしたかorz
ADRRESS関数で組みなおしてみようと思います
複数セルの範囲を指定するのは「ADRRESS(OFFSET(〜」で大丈夫ですよね?
675 :
673 :2011/07/18(月) 17:02:25.65
もう一度すみません・・・ ADDRESS関数を使ってリンクを設定しなおしたのですが、 やはり「指定されたファイルを開くことができません」といわれ、 正しくジャンプすることができません。 リンク元とリンク先が同じファイル・同じシートなので新しくファイルを開くことなくリンクさせたいのですが、 どのように記述すればよいのでしょう シート名の部分を =HYPERLINK(ADDRESS(COUNTIF(A:A,">1000")+1,12,1,TRUE,"#sheet1"),"作業番号") としてみてもダメなようです それと、ADDRESS関数ですと、行番号・列番号に一つの値しか設定できない(一つのセルにしか飛べない)ようですが、 複数のセル範囲を参照させるにはどの関数をかませてやればいいのでしょう? 適当な関数がないのであればマクロで何とかしますが・・・
676 :
複乳 :2011/07/18(月) 18:05:30.66
677 :
名無しさん@そうだ選挙にいこう :2011/07/18(月) 18:52:38.73
A列にタイトル、 B列にタイトルに紐づく説明文のデータがあって B列の説明文は一行ではなく複数行にまたがっています それをA1から下に順番に読み込んで タイトルに紐づく説明文のカウントを取りたいのですが やり方としては A1からA2A3と下に行って空白の場合B列の文字数のカウントを足していき 空白じゃなかったら0に戻してカウントをし直すやり方なのですが これだと最後のデータがうまく読み込めません うまいやり方があれば教授ください
678 :
複乳 :2011/07/18(月) 19:40:47.93
>>677 こんな感じ?
http://www.dotup.org/uploda/www.dotup.org1803280.jpg >A1からA2A3と下に行って空白の場合B列の文字数のカウントを足していき
>空白じゃなかったら0に戻してカウントをし直す
要するに常に累計をだしておき、タイトルが変わったらそれだけ引けばいい
C1=LEN(B1)
C2=LEN(B2)+C1-IF(A2<>"",C1,0)
DとE列はタイトル出すための物だからどうでもいいっちゃどうでもいもいけどついでに
D1=IF(E1<>E2,E1,"")
E1=A1
E2=IF(A2<>"",A2,E1)
679 :
673 :2011/07/18(月) 20:15:25.78
自己解決しました
「ADDRESS(〜」の前に"#"と入れることで
同一シート内の指定セルへジャンプすることができるようです
どうもお騒がせしました
>>676 ありがとうございます
やはり関数のみでは限度がありますか・・・
ジャンプの問題は解決したので
「番号行の入力範囲末尾へリンク>CTRL+↑で行頭まで選択」
という手順でマクロに吐こうと思います。
お答えくださったみなさん、どうもありがとうございました。
680 :
605 :2011/07/18(月) 22:01:55.43
>>610 返事が遅れてすみません。
ありがとうございました。
長文の文章の中から句読点の「。」がある度、別のセルに横へずれてコピペするマクロはどんな感じで組めばいいでしょうか。 A1(元文章のセル):あああ。いいい。ううう。えええ。おおお。 ↓ A2:あああ。 B2:いいい。 C2:ううう。 D2:えええ。 E:おおお。
データの区切り位置でいけんじゃねそれ
>>681 区切り位置の機能を使えば「。」を区切り位置に設定して同様の効果があります。
ただし、「。」が消えてしまいますが。
データの区切り位置だと、 A1→A1:E1になるし、元テキストが残らないし、"。"も残らないので要望に適してない A1→A2:E2のように出力先を別行にしたり、元テキストも消さず、区切り文字も残したいなら こんな感じとか buf = Split(Replace([A1].Value, "。", "。" & vbNull), vbNull) [A2].Resize(, UBound(buf)).Value = buf まあVBA使えば、区切り位置(TextToColumns)を使っても要望通りの結果は出せなくもないけど 素では「同様の効果」じゃないから、事前処理と事後処理が必要になって無駄が多いからな
>>684 どもでした。まさにこんな感じです。
ただ、最後の文字列に"。"がない場合、コピペされないみたいですが、
解決手段はありますか?
【1 OSの種類 .】 WindowsXP SP3 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 図が大きすぎます 入りきらない部分は切り捨てられます コピー 行 図はない エクセル2003ですが、ある日突然(WindowsUpdateをかけてからかもしれない) 表や列単位でコピーすると100%「図が大きすぎます。入りきらない部分は切り捨てられます」 というメッセージが出るようになりました。 実際、コピーペーストは出来るのですが、このMesが出る度に、実際巨大な画像をコピーしたかのように プチフリーズして動作が重くなるので困っています。 検索すると巨大なメタファイル関連で出るようで、MSのページにも対策が書いてあるのですが 私の場合は、図など何も使っていない開いたばかりの何も入力していないシートでも同問題が出ます。 再現率は100%で、Windowsを再起動した状態でエクセルをセーフモードで立ち上げても解決しません。 このような状態になっている方はおりますでしょうか? 余談ですが、こないだアップデートしてOFV アドインのバグとしか思えない不具合でも嵌りましたし こんな事ならアップデートするんじゃなかったと・・・・
687 :
複乳 :2011/07/19(火) 19:11:02.94
>>685 最後の文字列に"。"がない場合、
最後の文字列に"。" を付け加えるマクロを
加えればいいんじゃないかな
テーブルを作成して交互色にしてますが、以下の事で困っています。 1.. テーブル以外のセルの背景色を塗りつぶし 2. VBAのフォームでの入力などによりテーブルの範囲を拡張される 3. 背景色がテーブルの上にきてしまい、交互色が台なし なにか対処法ありますか?
>>686 Glary Utilitiesとか使い始めて無いか?
690 :
複乳 :2011/07/19(火) 20:27:46.94
>>686 図が大きすぎます。入りきらない部分は切り捨てられます
でgoogle検索して片っ端から試すしかなさげ
>>685 [A2].Resize(, UBound(buf)).Value = buf
↓
[A2].Resize(, UBound(buf) + 1).Value = buf
>>686 ウインドウズにはシステムの復元というのがありますのでアップデートする前に復元できるのでは?
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 今会社にいないので確認できません 【3 VBAが使えるか .】 簡単なC、読むだけならC 【4 VBAでの回答の可否】 可 こういうハイレベルなところでする質問なのかわかりませんが @Aというワークシート、Bというワークシートがあります。 Aのワークシートのある一列をコピーして形式を選択して貼り付けでBに貼り付けると数式だけでなく (Aというワークシート名+数式)が貼り付けられてしまいます。 これの数式だけ貼り付ける方法はありませんか。 AAとBはシート名は違いますが内容は同じもの但し壊れているので数式だけ貼り付けたい。 数式の中にシート1で入力された数字を参照するものが入っている。 Bシート1で50と入力しシート2で50を表示シート2で54を入力54-50を行い差の4を表示 シートBは壊れたまま使っており数字を全部入力していたが100行ほどあるので数式だけ移したい (ワークシートA)シート1・シート2・シート3 50 50 54 式 4 ↓一列の数式だけコピーしたい (ワークシートB)シート1・シート2・シート3 70 70 78 式 8 50 78 式 20←このようになってしまう
>>691 どもです!
これを配列処理する場合、どんな感じのプログラムになりますか?
シート1のA列を、シート2のB列に書きだす場合でお願いします。
695 :
↑ :2011/07/20(水) 11:44:41.09
すいません自己解決です
>>684 度々すいません。
この構文で実行すると、半角数字がある文章がくると空白になってしまう理由はなんでしょうか?
>>696 厳密には、数字の1が入るとおかしくなるようです。
698 :
686 :2011/07/20(水) 14:16:42.42
>>689-690 ,692
すいません、解決しました。
結論を言うと、MSアップデートやエクセルは全く関係が無く
クリップボード拡張ソフトCLCLの設定がいつの間にか変わっていたのが原因でした。
具体的には、クリップボードの履歴として保存するデータを選択したり、フィルタしたりする
設定があるのですが、これが
デフォルト全拒否(保存しない) → 許可した物だけ保存
から
デフォルト全許可(保存する)
になっていたのが原因でした。
ご存じの通り、エクセルはセルコピーで大量の項目をクリップボードに送るので、せいぜいテキストと
ビットマップぐらいにしておかないと、保存に時間がかかるのは当然でした。
(エクセル側でエラーを吐くと言うのは謎でしたが)
CLCLは凄く良いソフトで、絶対に手放せないツールの一つなんですが、なんかの拍子で
定型文のデータが消えたり、設定が変わったりすることが多いんですよね。私の環境だけかも知れ無いのですが。
どうもお騒がせしました。
前回のMSアップデートにケチを付けたのは撤回したいと思います。
(OFV アドイン除く)
699 :
名無しさん@そうだ選挙にいこう :2011/07/20(水) 16:04:59.76
あの、あまりにビギナーな質問で恐縮なのですが、どなたか教えてください。 Word2003を使って数年ぶりに文書を作成しました。 複数あるページの特定のページだけ印刷したいのですが、どうにもこうにも 説明書をいくら読んでも、やり方が判りません。お願いします。教えてください。 Word総合相談所の方に先に書き込んでおりますが、 あちらはちょっと過疎ってるようなのでもちろんスレチなのは承知しておりますが こちらに来ました。急いでいます。お願いします。
702 :
名無しさん@そうだ選挙にいこう :2011/07/20(水) 22:02:37.59
699です。解決しました。wordスレの回答にもそこへさえたどりつけ なくて右往左往してました。 ファイルの中に印刷というのがあるのは知っていたんですが、そこクリック したらいきなり印刷が始まってしまうと思い込んでて触れませんでした。 開いてみたら・・・いろんな設定ができたんですね・・・ お騒がせしました。
>>702 先に向こうのスレにお礼を言うのがエチケットですよ。
>>693 ブックと思われるところをシートと書いてたりして、イマイチはっきりとイメージできないんだが
もしかして「形式を選択して貼り付け」で「リンク貼り付け」をクリックしてる?
数式を貼り付けたいなら、そこはずばり「数式」を選択して「OK」をクリックするのでは?
>>704 ご指摘ありがとうございます。
ご指摘の通りシートとなっているところはブックです。
ですが形式を選択して貼り付けで数式を選択しても
ワークシート同士だとその数式の前にコピー元のワークシート名
がつくのです。ブック同士では素直に数式だけ行ってくれます。
選択したフォルダのファイルたちのファイル名の中に、 A列に書かれているファイル名があった場合は、書かれている隣のB列の内容のものに ファイル名を変更するVBAを教えて欲しいのですが、どうしてもわかりません。何卒作成していただけませんでしょうか? Officeは2003です。
707 :
複乳 :2011/07/21(木) 20:25:52.37
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 マクロで、最下行にある値と、最右列にある値を それぞれ得るにはどう書けばいいですか? (下記の例では、B列の1850と、2行目の3200を取得したい) 途中に空白のセルはありません。 A B C D E 1 1200 2500 1850 2 2450 1680 2000 1780 3200 3 1550 1225 1760 4 2100 2340 2500 2480 5 1850
0.1+0.1=0.2ですが、合計を自動で1.0にする関数ってありますか?IF関数でいけますか? 箱2つを紐で括って1つにする場合、 0.1の0が括ってある数で、1が括ってない数ということです。簡単に表したいんですが・・ 参考にしたいのでお願い致します
710 :
708 :2011/07/21(木) 23:12:55.86
すみません、漏れてました。 マクロで、最下行にある値とセルの番地、最右列にある値とセルの番地を それぞれ得るにはどう書けばいいですか? (下記の例では、B列の1850とCells(5, 2)、2行目の3200とCells(2, 5)を取得したい) よろしくお願いします。
>>709 なぜ、くくった箱1セットを1、バラの箱を0.5だとダメなのか説明してもらおうか。
713 :
複乳 :2011/07/22(金) 00:09:32.60
>>710 マクロの記録で
ctrl+end、ctrl+←
とか
>708 ちょっと面白そうな問題だったのでやってみた こんなんどう? Sub TEST708() Dim R1 As Range Dim R2 As Range Dim R3 As Range Dim Ans1 As Range Dim Ans2 As Range Set R1 = Range("A1") Set R2 = R1.CurrentRegion Set R3 = R1.Offset(R2.Rows.Count - 1, R2.Columns.Count - 1) Set Ans1 = R3.Offset(1, 0).End(xlUp) Set Ans2 = R3.Offset(0, 1).End(xlToLeft) Debug.Print Ans1.Address, Ans1.Value Debug.Print Ans2.Address, Ans2.Value End Sub
715 :
複乳 :2011/07/22(金) 00:10:58.28
>>709 足し算の最後に5をかければいいだけじゃないのか
>>705 とりあえず、ブックとシートの関係と
実際にどのセルにどんな数式が入ってるのか、
それをどうしたくてどうなるのかをもうちょっと整理して書いてほしい
ある程度こっちで再現できないことには検証もできないので
(seatA) Book1 Book2 Book3 Book4 50 50 54 4 54 59 5 59 67 8 (seatB) Book1 Book2 Book3 Book4 40 40 45 5 45 52 7 52 59 7 *1 40 40 45 5 54 52 -2 sestAとBは入力する数字以外は計算式などは同じ。 seatBは壊れているが全部暗算と入力してあるので数字は変えず数式だね移動したい カウンターの1日目の数字をBook1に入力(50) カウンターの二日目に一日目の数字をリンクさせ(50)を表示 二日目のカウンターの数字(54)を入力 そのセルを指定して(54-50)を計算させ結果(4)を表示 seatBはそのリンクと計算の式がこわれているのでseatAのBook3の 計算式をコピーしてseatBのBook3に形式を選択して数式で貼り付けると *1のようになるのでseatB・Book3の数式を確認すると 本来fx=(今回の数字-前回の数字)のところがfx=seatA名(今回の数字-前回の数字) となりseatBの前回の数字を参照させて計算したいのにSeatAの前回の数字 で計算してしまう。 コピペでどうしても参照してしまうのならseatAbook3の先頭の数式を 直接seatBのBook3の先頭に入力してそれを100列ほど展開させれば良いのでしょうが それを説明している場所をみつけられない。
おう;;数字がずれてるこれでわかりにくければおとなしく連休あけて会社 でもう一度内容を確認してきます。ありがとうございます
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 excel2010で横棒グラフの横軸の数値に 桁区切りスタイルを付けないようにしたいのですがどうすればいいですか?
>>717 普通にコピペしてから置換でワークブック名を””に置き換えるか
データ>リンクの編集(編集>リンクの編集)でコピペ先のブックを選択すればいいんじゃないかな
>>707 VBAは初心者同然なので、できれば細かく教えて欲しいです
>>719 横軸のところで右クリック→軸の書式設定→表示形式→数値→桁区切り(、)を使用する(U)
のチェックを外す。また、場合によっては表示形式を数値から標準など他の形式へ変更する。
>>722 桁区切りがなくなりました
ありがとうごうざいました
【1 OSの種類 .】 Win7 x64
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 Excel 週 平均 グラフ
ttp://petite-soeur.dyndns.org/cgi-bin/up2/src/ps210422.png ↑の様な感じで毎日 体重・体脂肪を記録しているのですが、
これを各週毎に平均値を取ってグラフ化したいと思っています。
7日毎に範囲選択で合計して/7すればいけるのは分かっているのですけど、
過去分が膨大にあるため、一つ一つ手動でやるのは大変な手間です。
関数等を使ってスマートに行うには、どうすればいいでしょうか?
D列に週番号をつける。1週目、2週目というかんじに。 別シートに週番号の連番をつくって、週番号をキーにSUMIFで集計し7で割る。
726 :
複乳 :2011/07/23(土) 12:02:30.92
>>724 =SUM(INDIRECT("b"&(ROW()-1)*7+1&":b"&(ROW()*7)))/7
=SUM(INDIRECT("c"&(ROW()-1)*7+1&":c"&(ROW()*7)))/7
下にオートフィル
Excel2007でワークシート内のデータを左右入れ替える方法を教えてください A列 B列 C列 りんご みかん いちご すいか めろん このように、行ごとにデータの個数が違います。これを A列 B列 C列 いちご みかん りんご めろん すいか のようにも左詰めで入れ替えたいのです
729 :
名無しさん@そうだ選挙にいこう :2011/07/23(土) 13:16:01.10
>>727 単純に手作業で列ごとコピーして削除っちゅうのはだめなのか?
730 :
名無しさん@そうだ選挙にいこう :2011/07/23(土) 18:06:12.19
作業用の行に3・2・1みたいに逆順になるような連番入れて その行使って列方向で並べ替えて ジャンプ選択で空白セル選択してセル削除で左詰めかな
エクセル2010買おうと思ってるんですが 単体じゃないOfficeだと2台(デスクトップとモバイル)入れれるみたいなんですが エクセル単体の場合も1ソフトで2台いれれるのでしょうか? よろしくお願いします
>>731 1台のみ使用可と言われているものはOEM(DSP)版と言われるものですので、
通常版・アップグレード版・アカデミック版はご自身のパソコンであれば2台可能です。
733 :
708 :2011/07/24(日) 01:16:25.78
>>714 ありがとうございます。
Ans1.Addressが $E$2 になりますが、Cells(a, b)形式で
a=2, b=5を得るにはどう書けばいいですか?
>>733 横レス失礼
ans1.row
ans1.column
で取得可能です
>>733 a = Ans1.Row
b = Ans1.Column
IT系の職に就いて5年目なのですが、 VBAは使えません。。 今後、必要になってくるものでしょうか?
>>736 >今後、必要になってくるものでしょうか?
VBAの必要性に疑問を感じているということ?
触ってもみないうちからそんなことを考えても
意味が無いんじゃないかな。
とりあえず、やってみることをお勧めするよ。
>>736 IT系って言っても、文字入力さえ出来れば問題ないものから、
高度なプログラミング能力を要するものまでピンキリだし、
逆に高度になればVBAの出番なんて無い可能性も高い。
またVBAが使えないと言っても、VBAだけが使えなくてC++などは使えるのか、
VBAを含むプログラム・マクロ・スクリプト言語一切が使えないのかで話は変わる。
故に、ここで聞いても無意味。
740 :
731 :2011/07/24(日) 14:51:48.20
>>732 購入してみますね
教えてくださってどうもありがとうございました
741 :
708 :2011/07/24(日) 19:23:55.65
>>734-735 ありがとうございます。
まさか即レスが付くとは思わなかったので
書き込んですぐに寝てしまいました・・・
【1 OSの種類 .】 WindowsXP pro 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 会社の方針変更(機密保持の兼ね合いです)により、データは原則PC管理になってしまいました ここで一つ問題があって現場で使っている各種記入用紙もPC管理になてしまい、 今までは原紙をコピーするだけなのに、これからはPCにログイン(権限上、個人アカウントが必要)→ 社内サーバーにアクセス→各種記入用紙の階層にアクセス(動作が重いアプリみたいなのが必須)→ プリントするプリンタ&トレイを選択→プリント・・・という非常に面倒くさい仕様になりました これでは現場の作業者に負荷がかかるので、各種記入用紙(70種類程度です)をサーバーから落として PCのHDD内に保存しておいて少しでも負担を減らそうとしていますが、もう少し楽にしたいと思っています やっと本題に入りますが、PC内のHDDに保存してある各種記入用紙のフォーマットの脇に プリントするプリンタ、トレイ、枚数、両面プリントの有無をドロップダウンリストから選択する項目を 作って実際にプリントさせることはできるでしょうか? 記入用紙によって用紙サイズや両面コピーの有無が違うので、設定をデフォルト化させるのは無理っぽいので・・・
説明が下手糞だったかも・・・ PCのHDD内に落としてある各種記入用紙も多少手を加えてて、目次(各種記入用紙の名称)があって そこをクリックするとフォーマットに飛ぶようにしてあります 出来れば目次の脇にチェック欄を設けて、チェックした記入用紙をドロップダウンリストから選択した設定で プリント出来るようにしたいです
>>742 うーーーーん
予想だけど、それ結構大企業じゃない?
特に銀行や証券辺りと思う
多分法律にキツイところと思うんだけど、システム部が
「古いフォーマットを使わないように」わざわざ作ったシステムなんじゃないかと思う
大企業病に掛かってる大企業の場合は、知らんw
>動作が重いアプリみたいなの
このソフトが社内のシステム部が作ったものなら、
上記の事をメールで訴えればいい
外部発注のシステムなら、総務部に言うのがよいと思う
短時間でなおしてくれる可能性もある
>PC内のHDDに保存してある各種記入用紙のフォーマット
これはマズイと思うが・・・
まぁ、それらは全て問題ないとする上で回答する
>>743 何はともあれ
マクロの記録でぐぐって、vbaを少しだけでいいから使えるようになるほうが早いと思う
>目次、そこをクリック
どこをクリック?ハイパーリンク?ボタン?セル?
仮にハイパーリンクとしても設定してるのか、関数なのか?
>フォーマット
どんな?裏表にしても、複数シート、2ページ、マクロ?と色いろある。
一つ訂正があってExcelのバージョンは2003でした
(事務所のPCは2007ですが、主につかうであろう現場のPCは2003)
>>744 外資系製造業です
現場レベルだとリース上がりのショボいスペックのPC(Pen4の2.4Gでメモリが512M)なのとLANケーブル這わせすぎて
回線速度が1Mちょいしか出ないので重くなっているのが実情かとorz
因みにコストリダクションの兼ね合いでPC新たに現場で購入する予定は無いのと(同スペックの予備品が数十台はあるとの事)
システムの全ては本国のを使っている感じで動作を軽くする対応依頼は無理だと思います
まぁ、PC内のHDDに勝手に落としているのは細かいツッコミは無しってことでw
マクロの記憶なら目次をクリックで各種記入用紙(フォーマット)へ飛ぶようにしているので何とか出来ます
フォーマットに関しては、単純な罫線と数字だけの記入用紙を両面に印刷して使っています
面倒なところは現場のPCによってプリンタの登録内容(順番)が違っててマクロの記憶では対処しきれない点です
(PC1号機ならUSB接続のインクジェットプリンタがあるので選択出来るプリンタが1台多く、
PC2号機ならラベルプリンタも印刷できるので選択肢の順番が違ってたり)
何だか、素直に私が記入用紙を管理してプリントするか、現場にレーザープリンタの印刷方法を教えた方が早いかも・・・
>>745 プリンタ設定の変更は可能だけどVBAが必要
VBAが使用可能なら、人間がいちいち選ばなくても全自動にもできる
>>745 話が横にそれるけど
> LANケーブル這わせすぎて回線速度が1Mちょいしか出ない
これはたぶん何か勘違いしてるか、配線か設定か何かが間違ってる
すいません、完全VBAの話になってしまいますが、 Public ListInt As String Private Sub ListBox1_Click() ListInt = UserForm1.ListBox1.Value End Sub で、リストの値が変数に代入されないのですが、なぜでしょうか。 ウォッチでみると、リストValの値は入っています。 Excelは2010です。
すいません 解決しました
セルの日付などを変数に放り込んだ時、 01 (1月)や 07 (7日)のように先頭にゼロがつかないように代入したいのですが、 変数定義で処理するものですか?
セルにはどういう表示形式でどういう値が入力されてるんですか? 日付が入力されてるんなら01や07にはならないと思うんですが
>>751 すんません、セルではなくリストボックスの値でした。
Replaceで無理やりゼロがあったら除去とかアホやってたんですが、10月とかありますからね・・・
一文字目にゼロがあった場合ってどう書けばOKでしょうか?
>>752 01とか07とか数字だけならformat(数字,"#")
オートフィルターかけた後の、見えている分だけの行を 1行、2行って変数でカウントする方法ってありますか(? _ ?)
757 :
複乳 :2011/07/25(月) 15:08:10.74
>>756 Sub Macro3()
Dim a, b
'最終行判定
For k = 65536 To 1 Step -1
If Cells(k, 1) <> "" Then
a = k
Exit For
End If
Next
'hiddenでカウント
For i = 1 To a
If Not (Rows(i).Hidden) Then
b = b + 1
End If
Next
MsgBox b
End Sub
一行目がタイトルなら、b=b-1とかサイコ゜につける
758 :
複乳 :2011/07/25(月) 15:08:25.87
>>756 そういうオプションは無いので、VBA以外では無理
まあ別セルにで良いなら、数式でやることは可能だが
>>757 どうもー
こちらでも色々調べて、SUBTOTAL関数でいけるかなーと思ったんですが、
どうもフィルタと相性悪いみたいなんですよねー ※特に2003以下?
酷いわ><
761 :
複乳 :2011/07/25(月) 18:52:03.31
確かSUBTOTALの可視セルの集計は、行の非表示と対応してるけど オートフィルタの非表示は経別扱いなんだよな めんどい
2007ではそのへんが改良されて オートフィルタの非表示は合計から除外するオプションが増えた
なるべく短いアクションで、今アクティブのセルの、行と列全体を選択するのは どうすればよいのでしょうか? 今自分がやってるのは全部手動で、例えばC3セルがアクティブの時 ・Shift+Spaceで行全体選択→Ctrlを押しながらC3をクリック→Ctrl+Spaceで列全体を選択 ・または、全部マウス操作でC列を選択した後にCtrlを押しながら3行目を選択 のどちらかでやっています。C3を交差点に行列全体を選択したいのです。 マクロで記録すると、マクロだと再現すると記録した場所の行列だけが アクティブになってしまい、思ってるようにいきません・・・。 どうかアドバイスお願いできないでしょうか?
>>763 マウスで左端の「3」をクリック
Ctrl押しながら上の「C」をクリック
>>759 そうですか。
今作成している文書の話なので今回は諦めます。
>>763 マクロ(VBA)だとこうかな?
Sub TEST763()
Union(ActiveCell.EntireColumn, ActiveCell.EntireRow).Select
End Sub
追記
なるべく短いアクションつー事だったね
ショートカットキーを登録するといいんじゃないかな
たとえば
Shift + Ctrl + →
で
>>766 のマクロを実行するとしたら
Sub Touroku_TEST763()
Application.OnKey "+^{RIGHT}", "TEST763"
End Sub
を実行しておく
【1 OSの種類 .】 WindowsXP Home 【2 Excelのバージョン 】 Excel 2002 A列のデータが歯抜け(空白セルがある)のとき、オートフィルタで抽出しようとしても 歯抜け以下を拾ってくれません。 A列を挿入してダミーデータを入れれば抽出できますが、列の挿入をせずに やる方法があれば教えてください。
先頭行から一番下の行までを選択してオートフィルタ。 これで全部拾えるよ
tp://members.jcom.home.ne.jp/sss-3/shin3/shin3_gattai2.html この様な表をエクセルで作ったのですが、特定の列・行だけを表示するようにするにはどうすればよいですか? 例えばこの表の場合、B3・B4・B5の範囲に「鬼神・天使・魔王」入力すると データのX行の「鬼神・天使・魔王」だけが表示され、他は非表示になるようにしたいのです。 そして、C3・C4・C5の範囲にも例えば「龍王・地霊・妖鬼」と入力すると データのY列の「龍王・地霊・妖鬼」だけが表示されるようにしたいのです。 Y列だけの表示なら、オートフィルタを使えば思うようにできたのですが 同時にX行の表示も絡めるとどうすればいいのか教えてください。
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 代入、計算結果、行を追加 A=150 B=350 C=100 と3つの数字を入力した場合に、 X150 (B/Y回、Xのプラスマイナスを入れ替えて繰り返す、端数はカット) Y100 (Xの間には必ずY(B)が入る) X-150 Y100 X150 Y100 X-150 Y-300(繰り返した数*B*-1)が最後に入る) のように自動で行を追加してくれるようにExcelでする事は可能でしょうか? よろしくお願いいたします。
↑訂正です。 (B/C回、Xのプラスマイナスを入れ替えて繰り返し、Xは偶数で終える、上記の場合350/100=3.5なので4回、仮に520/100の場合は6回)
↑難解すぎる
A1=150、B1=350、C1=100と入力したときに
D1に150
D2に100
D3に-150
(中略)
D8に-300
みたいなことでいいんかい?
あと、
>>772 の例だと(繰り返した数*B*-1)は4*350*-1=-1400になると思うんだけど
>>776 それについても説明不足でした。
横に一定間隔で移動しながら往復するデータを作りたくてExcelで何とかできないものかと考えておりました。
4角形に雑巾がけするイメージです。
上に150(部屋の縦方向)動いたら、横(雑巾の幅)に100動いて、次は下に150動き、また横に100・・・と部屋の横幅まで行き(はみ出す前提ですが)、
最後に元の位置に戻るといった具合です。
779 :
名無しさん@そうだ選挙にいこう :2011/07/26(火) 13:12:48.37
Excel2003のオートフィルなんですけど、デフォルトでセルのコピーではなく 1,2,3,4〜というふうになるように設定する方法はありますか? Ctrlを押しながらやればいいのはわかるのですがめんどくさいので。
マクロの練習として
>>772 をやってみました
だれか採点してくだちい
Sub zoukin()
Dim A As Long, B As Long, C As Long
Dim i As Integer
Dim rngStart
A = Range("a1") '部屋の長さ
B = Range("b1") '部屋の幅
C = Range("c1") '雑巾の幅
Set rngStart = Range("d1") 'スタート位置
rngStart.EntireColumn.ClearContents
i = 1
Do Until i > B / (C * 2) + 1
With rngStart
.Offset(i * 4 - 4, 0) = A
.Offset(i * 4 - 3, 0) = C
.Offset(i * 4 - 2, 0) = -A
.Offset(i * 4 - 1, 0) = C
End With
i = i + 1
Loop
rngStart.Offset((i - 1) * 4 - 1, 0) = -(C * (i - 1) * 2 - C)
End Sub
A1=150、B1=600、C1=100 NG
>>779 ない。ただし文字列ならデフォルトが連続データ
783 :
名無しさん@そうだ選挙にいこう :2011/07/26(火) 20:31:35.66
2130→21.5 800→8 という風に 六十進法しかも真ん中に:なしのデータを 矢印右の十進法小数点以下に変換するにはどうすればいいのでしょうか?
>>783 =TEXT(A1,"0!:00")*24
こういう質問ってよく見るけど、なんでこういう状態になるんだ?
>>784 トン
あるシステムからデータ取り出すとこうなる
>>782 ありがとう。
Excel97とかはどっちか選べたような気がするんですけど。
>>780 おまけして15点くらいはあげてもいいかな
788 :
名無しさん@そうだ選挙にいこう :2011/07/26(火) 21:58:23.27
>>784 これって*24でなんで十進法になんの?
理屈がわからん
>>788 シリアル値なんですもの(`・ω・´)
例えば、24:00を入力して、せるの表示形式を標準にしてみる、
12:00を入力して表示形式を標準にしてみる。
とすれば分かるかも
793 :
名無しさん@そうだ選挙にいこう :2011/07/27(水) 15:34:28.60
【1 OSの種類 .】 WindowsXP pro Windows 7
【2 Excelのバージョン 】 Excel2003 2010
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 できれば否
【5 検索キーワード 】 excel csv テキストファイルウィザード 改行コード LF フィールド内改行
http://okwave.jp/qa/q1782826.htmlが近いけど
794 :
793 :2011/07/27(水) 15:35:30.12
(本文長過ぎとかいわれたので分けました) にっちもさっちもいかなくなったので、どなたか助けてください。 CSVファイルがあります。フィールド内改行はLFで、レコードの区切りはCRLFです。 これを外部データの取り込みからテキストファイルウィザードを使用するとLFで別行に行ってしまいます。 CSVファイルをダブルクリックで開くとLFはセル内改行になるんだけど、データとして"2-5"ってのがあったら日付として読み込まれてしまう。 解決策があれば教えていただきたいのと、なぜ両者で挙動が違うのかわかれば、なにか教えてくださいませ。(´・ω・`)
795 :
複乳 :2011/07/27(水) 16:22:55.10
>>794 改行は多分仕様じやないか。csvの読み込みと外部データの取り込みの挙動が違うんだろう
で、結局何がしたいのかわからないんだけど
LFでセル内改行を維持しつつ、2-5をテキストデータとして読み込みたいなら
OOo使えばできる
http://ja.openoffice.org/ で、その後エクセルにコピーすればok
796 :
794 :2011/07/27(水) 16:35:57.90
>>795 >>LFでセル内改行を維持しつつ、2-5をテキストデータとして読み込みたいなら
説明不足ですんません。そういうことっす。
やっぱExcel単体じゃ無理ッスかねぇ。
相手には「EXCELの仕様です」で押し通すかw
LFとマイナスを何か別の記号に置換してから読み込んでもう一度Excelの中で置換とか
798 :
複乳 :2011/07/27(水) 16:54:26.52
799 :
794 :2011/07/27(水) 16:57:24.57
>>797 ですね。
一旦、LFを別の記号なり言葉なりに置き換えて、テキストファイルウィザード読み取り後
その記号をCtrl+Jに置換…という手順が最も自然でしょうかねぇ。
ありがとうございます
800 :
794 :2011/07/27(水) 16:59:31.58
>>798 レス入れ違いになって、スレ汚しですいません。
2010でも挙動は変わらないみたいですね。
ありがとうございます。
しかし、ぐぐってもあんまりこの問題抱えている人いなさそうなんだけど
みんな困ってないのかな
>>800 1-2が日付になって困るって質問は何度も見たことあるよ
セル内改行はダブルクォートで囲むのが一般的な解決方法
802 :
794 :2011/07/27(水) 17:41:14.20
>>800 「日付で読み込まれるのはテキストファイルウィザード使って文字列に指定しないからだ!」
って偉そうに言ってしまった手前、改行問題で後に引けなくなってしまいw
フィールド内改行はちゃんと、"hogehoge(LF改行)piyopiyo"ってダブルクォートで囲んでるのに
テキストファイルウィザード使っても別行にいってしまうんですよね…
相変わらず複乳はショボい回答ばかりだけど張り切ってるなぁ まだ就職できなくて暇なのかな? まあ会社としても、複乳みたいにそこそこ知識は詰め込まれているが、 根本的に頭の回転の悪い奴より、予備知識なんか無くてもいいから 頭の回転の良い奴が欲しいもんな。
804 :
複乳 :2011/07/27(水) 23:29:35.55
転職したよ。相変わらず暇で死にそうだ なんでもかんでもvbaでやるからどっちでもいいんだよw
エクセルで顧客管理をしています。 上から順に購入者の名前と金額を打ち込んでいて、2回目以降になると 〇月〇日 ×山〇夫(2) 7000円 というふうに名前の後に()書きで回数をいちいち打ち込んでいます。 顧客が多いので、いちいち以前に購入された回数を調べなくても 3回目なら、名前を打ち込んだ時点で×山〇夫(3)というふうに 以前購入回数+今回分の回数が自然にでてくるようにする方法は ないでしょうか?
806 :
複乳 :2011/07/28(木) 01:38:55.32
ありがとうございます。試してみます。
>>805 A列→日付、B列→購入者名、C列→購入回数、D列→金額ということでよければ、
C1 =IF(COUNTIF(B$1:B1,B1)<=1,"",CONCATENATE("(",COUNTIF(B$1:B1,B1),")"))
という式を入れることができます。
809 :
名無しさん@そうだ選挙にいこう :2011/07/28(木) 22:51:22.74
A列に文字が書かれていて、B列に整列させるには? たとえば A1からA10に"A",A11からA15に"B"A16からA18に"C"と書かれていて B1="A" B2="B" B3="C" というふうに複数のものも1つにして表示させたいです できるだけスマートな方法お願いします
>>809 Excel2011の場合ですが、
B列へコピペしデータタブの重複の削除を行えばおk。
>>809 関数だと、ものすご〜く面倒な数式になるよ。
ちょっと弄んでたけど、久しぶりだと式が立てられないw
×Excel2011→○Excel2010でしたね。スイマセン
税込み金額で作成された売上げ集計表があります。 税抜き金額に一気に変更するにはどうしたらよいか、教えて下さい。 この表を りんご 1,050 みかん 945 いちご 315 合計 2,310 このようにしたい りんご 1,000 みかん 900 いちご 300 合計 2,200 1.05をコピーバッファに入れて、金額の範囲を選択して 形式を選択して貼り付けで除算演算すればできますが、 他にあればと思いまして質問させていただきました。
>>813 たぶんそれが最速かつ一番簡単な方法かと思われ
よく使うならマクロ登録しとけばいいかもね、ってくらい
セルから参照させたリストボックスで選択中の値を、 スピンボタンで上下に移動させ、設定保存みたいなボタンを押すと参照元のセルもその順序に置き換える、 のようなVBAを組みたいのですが、どのように組めばよいでしょうか。
そのくらいならVBAいらないんじゃないかな 単にコントロール置くだけでいいかも
818 :
名無しさん@そうだ選挙にいこう :2011/07/29(金) 18:57:00.18
>>784 すいません。
-1630とかマイナスがついてる場合も十進法に変換する方法っないですか?
横レスだけど =TEXT(ABS(A1),"0!:00")*24*SIGN(A1) とか
820 :
名無しさん@そうだ選挙にいこう :2011/07/30(土) 01:03:32.51
複乳の中の人に質問なのじゃが VBAでpersonal.xlsbを作る方法は、マクロの記録でダミーのを作ってから、以外にありますか?
821 :
複乳 :2011/07/30(土) 01:15:33.84
A1セルの数値が1以下であれば, B1セルに "1以下です" という文字を表示 A1セルの数値が1以上であれば, B1セルは空白のまま。 という事をしたいのですが、どうすればできますか?
また、B1セル "1以下です" という文字は印刷されないようにしたいです。 宜しくお願いします
>>822 =IF(A1<=1,"1以下です","")
>>823 マクロ使って印刷時にB1セルのフォントカラーを背景色と同一に変え印刷し元のフォントカラー
へ戻すというマクロを組む。
>>823 他のワークシートへB1以外のセルをリンク表示させてそのシート
を印刷専用シートとして使う方法もあります。
>823,824 B1セルの文字色は背景色としたまま、テキストボックスをB1セルに重ねて配置し、 テキストボックスのプロパティで「印刷しない」にしておくとVBA使わずにすむと思う。 テキストボックスはB1セルを参照する計算式を入れればいいです。 ただし、テキストボックスがズレないようにするにはシートの保護が必要。
セルの表示形 ユーザー定義に "1以下です"を追加して 上手にできないだろうか?偉い人考えてみて
>827 セルの書式設定では「表示はするけど、印刷には出さない」の指定ができない
ですよねー
エクセル初心者の私でもIFとテキストボックスの合わせ技でできそうです! 皆さん、どうもありがとうございました
普段、エクセルを起動し、もう1つ起動させたいので
普通にエクセルを新規で起動して、読み込みます。
この手順をしないと、1つのエクセルの中に、2つのエクセルファイルが
できてしまいます。
デュアルモニタで、左右に別途エクセルを起動させています。
【質問】
エクセルを起動させた後に、xlsファイルをダブルクリック
すると、別途エクセルを起動するようにしたいのですが
どうすれば良いでしょうか?
簡単に言うと、xlsファイルをダブルクリックする度に
複数起動として起動させたいです。 よろしくお願いいたします m(_ _)m
【1 OSの種類 .】 Windows XP SP3 32bit
【2 Excelのバージョン 】 Excel2002
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 エクセル 複数 起動
http://efcit.co.jp/cgi-bin5/exqalounge.cgi?print+201004/10040006.txt この方法を試しましたが、ダメでした。
832 :
複乳 :2011/07/30(土) 18:04:04.39
>>831 ツール オプション ゼンパン ホカノアプリケーションヲムシスル
833 :
名無しさん@そうだ選挙にいこう :2011/07/30(土) 20:18:07.55
初歩的な質問ですが、同一シート内の別ブックのセルに、元のブックの 数値を反映させたいのですが、=から反映させたい数値のセルをクリックしても、 もvalueとでてきてしまいます。原因としてはどのようなことが考えられます でしょうか?解決策おわかりの方お教えいただけますか? 初歩的なことで恐縮ですが、何卒お願いいたします。
834 :
名無しさん@そうだ選挙にいこう :2011/07/30(土) 20:24:09.41
833の補足です。 【1 OSの種類 .】 Windows vista home premium 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 わかりません 【4 VBAでの回答の可否】 わかりません 【5 検索キーワード 】 元ブックの数値は、簡単な足し算を元に導いた数値です。
同一シート内の別ブックってどういうことなの世界は循環しているの
836 :
833 :2011/07/30(土) 20:48:52.84
すいません。同一ブック内の別シートです。
>>833 そのvalueが出てきた数式はどうなってる?
838 :
833 :2011/07/30(土) 21:22:44.65
837様 レス遅くなりすいません。 先ほど自己解決いたしました。 元のセルを結合していたのが原因だったようです。 お手数おかけして申し訳ありません。 レスいただきありがとうございました。失礼します。
840 :
名無しさん@そうだ選挙にいこう :2011/07/31(日) 00:00:39.54
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 モジュール エクスポート すみません、よろしくお願いします。 ブックAにSheet1があります。そこにはコマンドボタン1と2が付いています。 まずコマンドボタン1をクリックすると、ブックBが開き、Sheet1はブックBにコピーされます。 Sheet1がコピーされたら、ブックAを閉じるようにVBAで組んであります。 現在うまく行かずに悩んでいるのは2件です。 【1】コマンドボタン1に設定されているプロシージャを解除したい。 現状では、ブックBのボタン1をクリックするとブックAのVBAを読みにいこうとしてしまいますが、 Sheet1がブックBに移動した時点でボタン1はもはや無くてもいいくらいに無用なものなので、 クリックしても無反応なのがありがたいです。 【2】コマンドボタン2をクリックした時、ブックBのプロシージャを読んでほしい。 ボタン2はシートモジュールにプロシージャを設けているので、Sheet1がブックBへコピー された際にボタン2用に書いたプロシージャもブックBへ移動しています。 にも関わらず、ボタン2をクリックするとブックAのVBAを読みに行こうとします。 そうではなくブックBのVBAを読んでほしいです。 どうにかなりませんでしょうか…
>>840 下記だとどうでしょうか
多分
"フォーム"のコマンドボタンを使ってると思われるが
"コントロールツールボックス"のコマンドボタンに変更したら?
これで ブックAのVBAを読みにいこうとする問題は解決するはずなんだけど
【2】は解決するとおもう
【1】は
不要なら"ブックBのボタン1"を削除してしまうのがいいかと思うけど
他の方法として
1)ブックAの標準モジュールへ コピー処理本体を作成
2)ブックBの標準モジュールへ 1)と同名のダミープロシージャ(なにもしない)を作成
ボタン1クリック時のプロシージャからはこれをCALLする形にする
Private Sub CommandButton1_Click()
Call HogeHoge
End Sub
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい ※但し初心者 【4 VBAでの回答の可否】 可 【5 検索キーワード 】エクセル vba モジュール import すみません、コードがやたら長くなってしまうので別ファイルにエクスポートして分割したんですが、 メインのコードで呼び出すときにうまくいかず、その先のcallステートで怒られます… (ないものを参照しに行っているので当然エラー) 呼び出すコードは以下のように記述してます Application.VBE.ActiveVBProject.VBComponents.Import (ThisWorkbook.Path & "\○○.bas") (○○の部分はファイル名が入る) これと同様のコードが数行続きます。 何か間違えてる部分があればご指導願います。 できれば他のエクセルのバージョンでも使える形でお願いします。 後、デバック中のワークブックを見ると、この後にある Workbooks.Open Filename:=ThisWorkbook.Path & "\△△.xls" (処理に必要なワークブックを開くコード) これもきちんと動いていないようです。 こちらも合わせてお願いします。
844 :
843 :2011/07/31(日) 15:18:42.28
書き忘れました・・・ コードのコピペではなく、 自分で処理の流れを理解した上で使いたいので、 それが何をしているコードなのか、具体的な解説をいただけると助かります。 お手数かもしれませんがよろしくお願いします。
うまくいかず? 怒られます? 当然エラー? きちんと動いていないよう? etc 他人に具体的な解説を求めているのに自分は曖昧な説明ですか 具体的にどこでどのようなエラー(又は現象なのか)が出たか(エラーならそのエラーメッセージも) 書かないと誰も答えてくれませんよ
>>843 です
エラーが出るまでのコードは
---------------------------------------------
Sub test()
' 変数を定義
Dim RowA As Integer
Dim RowB As Integer
Dim RowC As Integer
Dim RowD As Integer
Dim C As Integer
Dim P As Single
Dim CkSub As Object
Dim mPath As String
ActiveWorkbook.Application.VBE.ActiveVBProject.VBComponents.Import (ThisWorkbook.Path & "\○○.bas") ActiveWorkbook.Application.VBE.ActiveVBProject.VBComponents.Import(・・・・・ ・ ・ ' 必要なファイルを開く Workbooks.Open Filename:=ThisWorkbook.Path & "\△△.xls" ' 仕訳帳整理 Call 「プロージャ名」 ---------------------------------------------
848 :
843 :2011/07/31(日) 17:04:56.45
ここで、 「sub またはfunctionが定義されていません」 といわれ 「プロージャ名」の部分を指されます ブックの状況はと言いますと マクロを動作させるために開いたブックと、 そのブックに元から書き込まれているマクロがあるだけで、 マクロ実行前と全く変化がありません (何故かモジュールをインポートする行、ブックを開く行ではエラーになりません) Callステートで呼んでいるサブプロージャは 先にエクスポートしておいたモジュールの名前ですので、 おそらくエラーの元は指摘された「Call 〜」の行ではなく、 冒頭の「ActiveWorkbook〜」の行でサブプロージャを取り込めていないせいだと思うのです。 いくつかVBAの解説サイトも回りましたが文法的におかしな箇所は思い当たらず・・・ 説明不足だったようで申し訳ありません。
>843 初心者レベルで「コードがやたら長くなってしまう」処理ってどんなの? 配列を使ったり、同じような処理ならfunctionやsubの副手続きにまとめたり しても数千行になるの?
前任者のコード丸ごとコピペしてなんとかしようとしたら動かなくなったんで勉強しなきゃいけないってとこだろ そんなもん前任者に聞け まずセキュリティエラー出るわそんなもん
>>849 数千・・・にはなりませんが数百にはなりますね。
実作業の部分は
Workbooks("仕訳帳日付順").Worksheets("sheet1").Range(Cells(RowB, 1), Cells(RowC, 3)).Copy
Workbooks("元帳_一般会計").Worksheets("会議費").Cells(3, 2).PasteSpecial Paste:=xlPasteValues
これと同様な単純なコピペコードが2、300個ほど続きます。
エラーが出たときに原因を特定しやすくしようと小分けにしたのですが、
やはり内部の同じモジュールにサブプロージャとして書き込むべきでしょうか・・・?
>>850 今回新しく作る整理用の帳簿に並び替えながら転記するためのコードなんですが、
何しろ数が多いので、ミスがないように自動で処理させるとなると
どうしてもVBAを避けて通れません。
おっしゃるとおりループで処理させるようなコードを組めば短く済むのでしょうが、
解説サイトを見ながらコードを書いているようなレベルなので、
いきなり難しい構文に挑戦するよりは、
多少冗長でもなるべく簡単な構文のコードだけで暫定版を組んでおき、
ある程度複雑なコードが組めるようになった時点できれいにまとめた完成版に差し替えようと考えています。
852 :
840 :2011/07/31(日) 19:39:18.50
>>841 回答ありがとうございます!
職場のブックなので自宅に持ち帰ることができないため、
明日出勤したら早速修正してみます。
フォームのコマンドボタンとコントロールツールボックスのコマンドボタンで
働きが異なるんですね、恥ずかしながら初めて知りました…
今後気をつけてボタンを設置することにします。
>>848 VBAでも
コンパイル→プロシージャ実行 の流れになるので
このコンパイル時にそのプロージャがないと
「sub またはfunctionが定義されていません」となる
※コンパイル時はプロシージャ"実行前"なので
当然としてインポートもされていないから「プロージャ名」も存在していない
たしかコンパイルはモジュール単位じゃなかったかと思うので
Sub test() があるモジュールとは ★別の標準モジュール★に書かれた
プロシージャを経由して
インポートされるプロシージャをCALLする形にするといいかも
CALL TEST2 --> SUB TEST2() --> インポートされるプロシージャ
この対策自体ちょっと自信がないんで
もしこれでも「sub またはfunctionが定義されていません」となったり
又は他の不具合でたらゴメンね
>>851 その程度のさして長くもないコードをエクスポートまでしておく必要あるのか?
そもそも、
> エラーが出たときに原因を特定しやすくしようと小分け
というなら、
> Workbooks("仕訳帳日付順").Worksheets("sheet1").Range(Cells(RowB, 1), Cells(RowC, 3)).Copy
なんて書き方はしちゃいけない。
Set ブック変数 = Workbooks("仕訳帳日付順")
Set シート変数 = ブック変数.Worksheets("sheet1")
Set セル基点1 = シート変数.Cells(RowB, 1)
Set セル基点2 = シート変数.Cells(RowC, 3)
Set セル範囲変数 = シート変数.Range(セル基点1, セル基点2)
セル範囲変数.Copy
にしろ。第一、
> Workbooks("仕訳帳日付順").Worksheets("sheet1").Range(Cells(RowB, 1), Cells(RowC, 3)).Copy
は、正しくは
Workbooks("仕訳帳日付順").Worksheets("sheet1").Range(Workbooks("仕訳帳日付順").Worksheets("sheet1").Cells(RowB, 1), Workbooks("仕訳帳日付順").Worksheets("sheet1").Cells(RowC, 3))).Copy
としなきゃダメなんだぞ
Range(Cells,Cells)の場合、Rangeの親とCellsの親は同一でなければならないが、標準モジュールの場合、
親を略してCellsと書くと、Cellsの親はアクティブシートとなる。つまり、sheet2がアクティブな状態で
Worksheets("sheet1").Range(Cells(RowB, 1), Cells(RowC, 3))
と書くと
sheet1.Range(sheet2.Cells(RowB, 1), sheet2.Cells(RowC, 3))
と同義であり、不整合でエラーになる。しかし
> Workbooks("仕訳帳日付順").Worksheets("sheet1").Range(Cells(RowB, 1), Cells(RowC, 3)).Copy
なんて書いた場合、行全体がオブジェクト定義エラーとされるから、Workbooksオブジェクトのエラーなのか、.
Worksheetsオブジェクトのエラーなのか、Rangeオブジェクトのエラーなのか、Cellsオブジェクトのエラーなのか解りにくい。
君のコードは無駄に冗長なだけで、エラーを特定しやすくしたコードとは呼べない。
便所の落書きより読みにくいなおい
しかし重要かつ正しい指摘ではある つーか、プログラムコードなんておしなべて便所の落書きより読みにくいものだぞw
最近のゆとりは文章を読む力が衰えてるらしいからね
しかし読みにくいモノを読むと便意をもよおしてくるよな。 トイレでは逆にそれが良いんだけど。
別に読みにくくもないけどね ・・・・・まともな読解力があれば
860 :
名無しさん@そうだ選挙にいこう :2011/08/01(月) 13:34:01.28
EXCEL2011(Windows7)です。 リボンのタプの[ファイル]がいつも選択された状態になります。 通常は、リボンのタブ(例えば[ホーム])をクリックすると、 別のタブをクリックしない限り そのタブ([ホーム])が表示され続けるのですが、 1つのセルの操作を完了するとリボンが[ファイル]タブのリボンになります。 どうすれば正常になるのでしょうか?
>>860 再起動
マウスとキーボードが故障してないか確認
変なソフトが入ってないか確認
あと、2011じゃなくて2010のはず
Excel2002です。 質問なのですが、 CONCATENATE関数で一つのセルに複数の数値を送った時に、 それぞれに書式表示を設定するには、どうやったらできるのでしょうか? 例えば、「10,-5」と、CONCATENATEが返した時に、 表示では「+10個/-5個」というような表示になって欲しいのです。 どうかよろしくお願いします
CONCATENATEは複数の値を返す関数ではなく 文字列を結合する関数だよ なので表示形式的には文字列を示す「@」しかあり得ない その上で「+10個/-5個」と表示したければ =TEXT(A1,"+0個;-0個")&"/"&TEXT(A2,"+0個;-0個") とかやれば良いだけで、CONCATENATE関数は使わなくても良い あえてCONCATENATE関数使うなら =CONCATENATE(TEXT(A1,"+0個;-0個"),"/",TEXT(A2,"+0個;-0個"))
>>863 申し訳ない、勉強不足でした。
TEXT関数でやりたいことができました。
どうもありがとうございます。
>>865 ほい
Sub Macro999()
'見出しのコピー
Range("A1:C1").Copy
Range("D1").PasteSpecial
Range("G1").PasteSpecial
Range("J1").PasteSpecial
'データの移動
全データ数 = Range("A1").End(xlDown).Row - 1
分割後の行数 = WorksheetFunction.RoundUp(全データ数 / 4, 0)
コピー開始行 = 分割後の行数 + 2
For コピー先の列 = 4 To 10 Step 3
Cells(コピー開始行, 1).Resize(分割後の行数, 3).Cut
Cells(2, コピー先の列).Select
ActiveSheet.Paste
コピー開始行 = コピー開始行 + 分割後の行数
Next
End Sub
867 :
名無しさん@そうだ選挙にいこう :2011/08/01(月) 16:22:23.68
教えてください 【1 OSの種類 】 Windows7 64bit 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか 】 はい 【4 VBAでの回答の可否】 可 Excelのメニュー、例えばツールとかウインドウをクリックしたときに、 「全部表示すると長いから、短く表示していますよ。[これ]をクリックすれば全 部見せますよ」 という動作をするのですが、これを常に全部表示にしたいです。 どこの設定をさわれば良いのでしょうか? あるいは、[これ]は、何という名前の物なのでしょうか? 名前がわからないので、検索もままならず。
>>867 ツール>ユーザー設定>オプション>常にすべてのメニューを表示するにチェック
名前・・・はわからない。検索するなら「メニュー すべて表示」とか?
>>867 そういう時は、表示されたメッセージを正確にそのまま書き写して検索にかければ出てくる
勝手に要約しないこと
いやメッセージは出ないだろ
871 :
名無しさん@そうだ選挙にいこう :2011/08/01(月) 17:20:05.11
>>868 どうもありがとうございました。思い通りになりました。
Excelのお節介もバージョン毎に強力になり、困っていました。
大変ありがとうございました。
>>869 僕が質問で書いた「全部表示すると長いから、.....全部見せますよ」
というのは、質問の動作説明のために、僕が作成したものであって、
実際にはEXcelからは何もメッセージは出ないです。
何か勘違いされているのでは無いでしょうか?
ありがとうございました。
>>866 さんくすこおおお!
コピーしたい列が増えた場合は、どこをいじればいいですか?
>>871 Excelの場合、メニューの一番下にマウスを合わせると「展開」って表示されるでしょ
それで検索するのよ
「Excel メニュー 展開」でぐぐると一番上に答えが出てくる
画面に何か表示されたら、それで検索するってのはWindowsの基本
874 :
872 :2011/08/01(月) 18:20:20.91
すんません自己解決っす
>>872 このプログラムは簡単に増やせるようにはなってない
そういう可能性があるなら
Sub Macro999()
分ける列数 = 4 ' ←ここの数字を変える
'見出しのコピー
Range("A1:C1").Copy
c = 4
For i = 2 To 分ける列数
Cells(1, c).PasteSpecial
c = c + 3
Next
'データの移動
全データ数 = Range("A1").End(xlDown).Row - 1
分割後の行数 = WorksheetFunction.RoundUp(全データ数 / 分ける列数, 0)
コピー開始行 = 分割後の行数 + 2
コピー先の列 = 4
For i = 2 To 分ける列数
Cells(コピー開始行, 1).Resize(分割後の行数, 3).Cut
Cells(2, コピー先の列).Select
ActiveSheet.Paste
コピー開始行 = コピー開始行 + 分割後の行数
コピー先の列 = コピー先の列 + 3
Next
End Sub
876 :
860 :2011/08/01(月) 19:29:42.07
>>861 レスありがとうございます。
再起動(EXCEL2010とWindows7)しましたが現象は変わりません。
マウスとキーボードは問題ありません。
[ホーム]タブのクリック→[ホーム]リボンの表示→ツールボタンのクリック等までは
正常に動作します(その後勝手に[ファイル]リボン表示になる)。
変なソフトってウィルスですか?
ウィルス対策ソフトでは検出されていませんが・・・
すみません質問です。 Excel2003で作成していたマクロ入りファイルAと Aのマクロの記述を若干変えてアップデートしたファイルBがあります。 配布したのですがAは問題なく使えていたのですがBは開くときに 「非表示モジュールModule17が・・」というエラーがでます。 ためしにModule17を解放(=削除)したところ今度は「非表示モジュールModule5が・・」 というエラーが出ます。 その人が2007で開いたからかと思い知人の2007で開きましたが普通に開けます。 この場合どのような原因が考えられますでしょうか? マクロの記述のせいではないのではないかと思うのですが・・。 ちなみにModule17の中身はAとBで一緒です。
878 :
877 :2011/08/01(月) 20:15:09.48
追記 マイクロソフトのサポート見てみましたが 307410ににた症状ではあるものの、ちょっと違うような気がします・・。 (この場合は AutoExec とかAutoExecNewなので)
Excel2003で、セルの書式を次の設定にしたとき、図2のように 前後にスペース(というか空白)を設けるにはどうすればいいですか? 【設定】 横位置 左詰め 縦位置 上詰め 文字の制御 折り返して全体を表示する 【図1】 |あいうえおかきくけこさし| |すせそたちつてとなにぬ| |ねの | 【図2】 | あいうえおかきくけ | | こさしすせそたちつ | | てとなにぬねの | 文章なので、文の途中には全角スペースを入れたくないです。 よろしくお願いします。
880 :
名無しさん@そうだ選挙にいこう :2011/08/01(月) 23:32:39.36
パワーポイントでやれとしか言いようがねーわなあw それかテキストボックス置いてセルにリンクさせるとか? どーせ印刷の時点でコケるだろうけど
>>879 当方2010なので2003にあるかどうか不明ですが、セルの書式設定→配置→横位置
→均等割付け(インデント)→インデント→1
にするとお望みの【図2】のようなことが出来ます。
>>882 2003だとこんな感じになるよ
| あいうえおかきくけ |
| こさしすせそたちつ |
| て と な に ぬ ね の |
>>883 2010でもそんな感じ。
結局は均等割付けなんで。
>879 >文の途中には全角スペースを入れたくないです。 途中に入れるんじゃなくて、文末に空白を入れるのであれば、 >882さんの方法でいいんじゃない? ただし、画面表示と印刷結果はかなり異なる(印刷プレビューと 印刷結果も異なる場合があるらしい)から、試行錯誤する必要は あると思うけど。 ※試してません
>>882 の方法でどうにか【図2】に近づけないものかと思案した結果、文末にスペースいれたらどうか
と考えた。
通常の全角・半角スペースの場合は全く無意味に均等割付けされてしまう結果でした。
ところが記号と特殊文字→特殊文字→改行をしないスペース を文末に挿入してみたところ【図2】
に近づけることが出来ました。
887 :
名無しさん@そうだ選挙にいこう :2011/08/02(火) 13:42:38.00
エクセルのことで質問です。 何もしない、という処理の関数についてです。 例えば、前提としてA1のセルに「3」という数字が入っていたとして、 A1にIF関数を挿入。結果が真ならば処理をする。 偽ならばなにも処理をせずA1セルはもともと入っていた3のままにする。という処理を行いたいです。 お願いします。
ワークシート関数でやろうとしてるなら無理 VBAでIF文わからないならVBAの本一冊読んだ方が良いよ
VBA使いたくなきゃB列にIFワークシート関数とかでいいんでないの? ワークシート関数じゃ自セルの内容書き換えられねーから
890 :
名無しさん@そうだ選挙にいこう :2011/08/02(火) 13:57:49.58
1セルに入る全角文字の最大文字数は?
Excelのバージョンによって異なる
【1 OSの種類 .】 WindowsXP Pro 【2 Excelのバージョン 】 Excel2007 A1に=today() B1に2011/3/11 C1に=DATEDIF(A1,B1,"d") とするとC1に日数が返ってくるのを期待すると #NUM! になってしまうのは何故?
日付を置く順番が逆
894 :
892 :2011/08/02(火) 19:27:55.72
オーマイガッ ありがとう w
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002(OfficeXP) A列にタイトル行がない文字列があります。 上段、下段とも行数が一定ではなく、上段には途中に1行の空白セルが 複数あるので、End(xlDown)が使えません。 また、上段と下段の間に空白セルが2行あります。 上段のみを別シートにコピペしようと自動記録を取りましたがうまくいきません。 どこがマズーでしょうか? うどん ┐ そば | | オムライス | 上段 うんこ | かつ丼 ┘ りんご ┐ バナナ | 下段 みかん ┘ Range("A65536").Select Selection.End(xlUp).Select Selection.End(xlUp).Select Selection.End(xlUp).Select Range("A1", Range("A65536").End(xlUp)).Copy
順番に書いてみると… 自分の中では分かりやすくしてみたつもりだが無駄に遠回りだったらごめん Dim 下段の最下行 AS Integer Dim 下段の最上行 AS Integer Dim 上段の最下行 AS Integer 下段の最下行 = Cells(Rows.Count, 1).End(xlUp).Row 下段の最上行 = Cells(下段の最下行, 1).End(xlUp).Row 上段の最下行 = Cells(下段の最上行, 1).End(xlUp).Row Range(Cells(1, 1), Cells(上段の最下行, 1)).Copy
最初の行から1行ずつ検査して2個目の空白がある行まで洗濯すればいいじゃん
898 :
895 :2011/08/03(水) 21:08:10.84
>>896 わかりやすいです。
ありがとうございました。
899 :
名無しさん@そうだ選挙にいこう :2011/08/03(水) 21:18:38.88
hdd.crush.exe
900 :
名無しさん@そうだ選挙にいこう :2011/08/04(木) 19:03:04.65
>>888 多重選択でなければ、IF文ワークシート関数をセル埋込みで、十分対応
できると思うがね。
何故に、無理との答えなの?
>900 そもそもの話からしてムリでしょ。 何かの値が入っているセルに式を入れた時点で元の値は消滅するから。 =if(判定式,なにか別の式(887でいう"処理"),3) ということなら可能だろうけど、質問の趣旨から外れると思う。
条件付き書式の処理っていうならできるけどね。
903 :
名無しさん@そうだ選挙にいこう :2011/08/05(金) 11:04:23.57
「怪しいお米セシウムさん」の件はしかたないと思う だってこれは事故で放送されないという前提だったでしょ。 「そもそも空欄になるのがダメだから適当に何か入力してくれ」と言われれば そのときとっさに思いついたものを入れるしかない。 このスレで質問するときの常套手段の「うんこ」と同じ。 別に意図はない。 会社ででも初めてメールが使えるようになった新入社員でも 本文に「テストメール。うんこ。」と書いて送ったことあるよ。 米の当選者だって、たまたまこの時期放射能が話題になってたから 「怪しい」とか「セシウムさん」になっただけであって。
どこの誤爆か知らんけど、内部のみといっても「怪しいお米 セシウムさん」はまずいだろ。 まあ、「うんこ」とかメールに書くような社員がいる会社の 常識は世間とずれてるんだろうけど。
905 :
名無しさん@そうだ選挙にいこう :2011/08/06(土) 09:16:03.00
>>895 マズーなのは明らかに二番目のグループの「うんこ」でしょう。
なぜそこだけ「うんこ」にした?
>>895 空白を半角スペースにしておけばいいんじゃない?
食べ物とうんこを並べて書くようなやつはクビでいいよ マナーや常識のないやつとは仕事したくない テストメールにうんこも論外
変なやつだな つ うんこ
909 :
困った :2011/08/06(土) 13:09:15.71
<シート1> 年 月 日 費用別 概要 支出 合計 23 8 1 学校行事費 学園祭による・・・ XXXXX円 XXXXX円 23 8 2 進路費 某企業の・・・ XXXXX円 XXXXX円 23 8 2 交際費 学校長と・・・ XXXXX円 XXXXX円 23 8 3 学校行事費 体育祭による・・・ XXXXX円 XXXXX円 ・ ・ ・
みないうちにピボットテーブル と言ってみるw
911 :
困った :2011/08/06(土) 13:11:54.31
912 :
困った :2011/08/06(土) 13:14:07.16
909書き込み失敗した者です。 はじめまして。 エクセルでみなさんに教えてもらいたい事があります。 俺、今、高校で臨時職員してるんだけど、 採用してもらって三ヶ月過ぎたけど、なかなか他の先生とかと交流ないのさ。 毎日図書準備室で一人で本の整理とかしてる。 そんな時に俺より2コ位下の若い女の先生がさ 「俺さんってパソコンの仕事してたって聞いたんだけど、出納帳ファイル使いやすく出来ますか?」 って聞いてきたんだ。 仲良くなれるきっかけだと思ってとりあえず詳しく聞いてみると、ざっくりだけど次のような事がしたいらしいんだ。
913 :
困った :2011/08/06(土) 13:17:48.99
最終的には心と体とを通じ合わせる関係を求めてます。
914 :
困った :2011/08/06(土) 13:17:59.74
<シート1> 年 月 日 費用別 概要 支出 合計 23 8 1 学校行事費 学園祭による・・・ XXXXX円 XXXXX円 23 8 2 進路費 某企業の・・・ XXXXX円 XXXXX円 23 8 2 交際費 学校長と・・・ XXXXX円 XXXXX円 23 8 3 学校行事費 体育祭による・・・ XXXXX円 XXXXX円 ・ ・ 上の一覧データに入力すると費用別の各シートに自動的に割り振りたいっていうことで
915 :
困った :2011/08/06(土) 13:20:03.63
<シート2> ・学校行事費 年 月 日 費用別 概要 支出 合計 23 8 1 学校行事費 学園祭による・・・ XXXXX円 XXXXX円 23 8 3 学校行事費 体育祭による・・・ XXXXX円 XXXXX円 ・ ・ <シート3> ・交際費 年 月 日 費用別 概要 支出 合計 23 8 2 交際費 学校長と・・・ XXXXX円 XXXXX円 ・ ・ っていうカンジにしたいんだけどさ。
916 :
困った :2011/08/06(土) 13:22:29.81
先に言ったけど俺、パソコンに詳しいっていっても 組み込みソースのプログラマーやってただけで、アセンブラ・C言語しか知らないし。 エクセルもやったことはあるけど、関数とかはifとかsumとかそんなんしか思い浮かばず…。 でググって一生懸命調べたんだけど VLOOKUPって関数を使ったらいいのかなってとこまでいったんだ。 でもシート1の全範囲から検索値がマッチした最初の一個しか抽出できないみたいだし…。 そこでもう俺の頭の中はショート寸前。
>>914 自動的に、というのはマクロ以外ない。
いや、めちゃくちゃ素晴らしい関数を使えばできないこともないけど。
簡単なのはアクセスだけど、たぶん敷居が高い。
正直、初心者レベルの人がやるなら、オートフィルタで抽出してコピペが一番安心
メンテナンスも不要だし。
頑張って心と体を通じ合わせてくれ。こっちは暑い
あ、書き込みあった。 vlookupじゃないよ。 関数だと配列数式を使えば出来なくはない。 ただ、メンテがvbaより大変になるから、趣味のレベルじゃなければオススメできない。というか、実用的じゃない。
920 :
名無しさん@そうだ選挙にいこう :2011/08/06(土) 13:28:47.43
<シート1> 年 月 日 費用別 概要 支出 合計 23 8 1 怪しい米 セシウムさん XXXXX円 XXXXX円 23 8 2 汚染された米 ヨウ素さん XXXXX円 XXXXX円 23 8 2 怪しい米 ストロンチウムさんXXXXX円 XXXXX円 23 8 3 汚染された米 セシウムさん XXXXX円 XXXXX円 ・ ・
シート1の行毎に費用別キーを設定して連番をふる キー 年 月 日 費用別 概要 支出 合計 学校行事費1 23 8 1 学校行事費 学園祭による・・・ XXXXX円 XXXXX円 進路費1 23 8 2 進路費 某企業の・・・ XXXXX円 XXXXX円 交際費1 23 8 2 交際費 学校長と・・・ XXXXX円 XXXXX円 学校行事費2 23 8 3 学校行事費 体育祭による・・・ XXXXX円 XXXXX円 あとは費用別シートにキーを並べてVLOOKUP()でひっぱってくるだけ
ピボット作っておいて更新でいいじゃんなんのための機能だよ
923 :
セシウムさん :2011/08/06(土) 22:42:43.30
シートにチェックボックスを使いたいんですけど、 フォームコントロールとActiveXコントロールの違いは何ですか? 普通の人はどっち使ったほうがいいですか?
具体的な違いは自分も知らんが、後者の方が何かと便利 ボタンを一旦クリックしたら、処理終了後にボタンを削除して二度と押せないようにするプロシージャ 書いたときも、後者のボタンを削除する記述方法なら検索で出てきたけど 前者のボタンはどうやらVBAで消したり非表示にしたりできないようだったし なんでそんな違いがあるんだろね。まあとにかく前者を使わなきゃならないのっぴきならない理由が あるんでなければ、後者のボタンを設置するのが良いと思う
925 :
名無しさん@そうだ選挙にいこう :2011/08/06(土) 23:03:41.38
オートフィルタや並べ替えのとき 勝手に選択範囲を選んでくれるじゃないですか。 気持ち悪くないですか? 実際、希望通りの範囲を選んでくれることが多いけど 自分が選んだ狭い範囲だけでオートフィルタや並べ替えのときをしたいときはどうするの?
926 :
名無しさん@そうだ選挙にいこう :2011/08/06(土) 23:09:26.55
ひとつのシートで複数の部分にオートフィルタをかけることってできないの? そうならなぜそれをはっきり書いてる入門書がないの。 ィャになっちゃぅゎ。
できるゎょ
928 :
名無しさん@そうだ選挙にいこう :2011/08/06(土) 23:23:58.88
ヵッォ ォャッ ョ
ひとつのシートに複数のオートフィルタ範囲を作成することはできないわ 片方をフィルタするともう片方の範囲にも影響して行が見えなくなったりするもの そのような使用法は無意味よ ひろみ
お前ら誰だw
932 :
名無しさん@そうだ選挙にいこう :2011/08/06(土) 23:46:13.58
お蝶夫人かメーテルの声で読んでね
>>923 フォームコントロールはExcelの機能として開発されてきた機能。
ActiveXはVBA(VB)の機能として開発されてきた機能。
いまはActiveXという仕組み自体の開発が止まっちゃってるので、普通の人は
フォームコントロール使った方がいろいろと安全。
特に2007以降でActiveXコントロール使う奴は馬鹿。
じゃあ俺はセーフ 日経225企業なのに未だにXPかつ2003だ
937 :
複乳 :2011/08/07(日) 00:34:42.14
>>923 ・ActiveXの利点
高機能、複雑
アレルギーの人がいる(
>>935 )
VB勉強中の人にとってはフォームより楽。人によってはVBを覚えることにつながるかも
全くの初心者だと、フォームよりやや使いづらい
・フォームの利点
単純、簡単
フォームはExcelのための機能。親和性は最高
VB上がりにはやや使いづらい
・結論
大して変わらない
両方使って楽と感じたほうでいいと思う
何社か事務やったけど、フォーム使ってる人の方が多いとは思ったな
938 :
複乳 :2011/08/07(日) 00:35:54.12
>>936 大企業ってそういうの遅いよね
225でこないだ吸収合併されたとこは数年前までNT4使ってた
起動が死ぬほど遅かったぜ
939 :
困った :2011/08/07(日) 08:09:59.53
913は俺じゃない、誰だw
お役所が変えないと、ウィンドウズ7なりOFFICE2007、2010に変えにくいと聞いた うちもXP、2003環境
アレルギーとかじゃねーよ 止まるんだよ普通に 自分の使いやすい方を使えばいいという話じゃない
クソ古い環境で自分だけの世界に閉じこもってるバカには関係無いかもしれんけどね 新規に覚えようとする人にそういうもん勧めんな
943 :
名無しさん@そうだ選挙にいこう :2011/08/07(日) 12:35:17.98
WindowsXP Excel2000 VBAマクロの挙動が安定しません イレギュラーな値が出てきたり、メモリ不足ですとエラーが出て停止したりします 再現しないので回避も難しいです 解決する方法を教えて下さい Excel2003では問題ないのですが・・・
>>943 どこかで大きい桁の数値を扱ってるとか?
945 :
複乳 :2011/08/07(日) 15:47:01.90
>>943 メモリ不足ならメモリ不足なんだろう
シートの内容を整理するか、メモリを増設するか、かな
PCを買い換えてもいいかも
実際そのパソコンとマクロを診ないと、正確な事は答えられない
946 :
名無しさん@そうだ選挙にいこう :2011/08/07(日) 17:38:15.62
>>944 特にないです
Excel2003で解除された制限とかがあるんですか?
>>945 2GBあるので物理的にメモリが足りていないということは無いと思います
>>943 下記のサイトでこんな情報 見つけた (正しい情報かどうかは知らないよ)
http://www.ikachi.org/mssupport/excel.html >Excel2000にてメモリ不足エラーがでる場合
>概要
>Excel2000では、公開されていないメモリ制限があります。
>物理的なメモリとは違い、Excel内部で持っている制限のようです。
>例えば、開いているExcelファイルのシート数や、数式が入力されているセルの数などが制限の対象となるようです。
>Excel2002以降では、この制限は解除されたそうです。
948 :
名無しさん@そうだ選挙にいこう :2011/08/07(日) 18:08:54.96
>>947 ありがとうございます
数式をできるだけマクロに置き換えて対応してみます
>>936 日経255じゃないけど、日経255の親に合わせてるうちもそうだ。
>>338 > 大企業ってそういうの遅いよね
まあ、大企業だと費用も半端じゃないし、社内システムの動作確認も大変だし。
IE8 を解禁するだけで大騒ぎだよ。
> NT4使ってた起動が死ぬほど遅かったぜ
普通に作ってりゃそんなに遅かった記憶はないが。
ディスクとかのデバイスをやたら積んでるとか、メモリー 32MB とかでやってた
のか?
>>941 >止まるんだよ普通に
単に使い方を間違ってるだけだろ。
そうでないというなら、ソース晒せよ。
ActiveX使いたきゃユーザーフォームに張り付けて使えってこった。 シートに張り付けるバカ増やすような布教活動は勘弁してくれマジで。
なんだ単にバグに引っかかったからアレルギーになったアホか。
再現性が確立された既知のバグを取り上げてクソだクソだと騒ぐのが 「まともな技術者」ってことですか? バグなんてActiveXだけでなく、Excel自体にもそのプラットホームとなるWinやMacにも というかほぼ全てのソフトウェアに存在してるんだから、バグがあるから一切使うなではなく 再現性が確立された既知のバグなんて、それを再現しないように上手く回避しながら 使っていけるのが「まともな技術者」だと思っていたんですが・・・・・ つまり、そのリンク先に書かれているバグを再現するようなことをやろうとしている奴に 「そういう使い方はするな」と指摘するのはいいが、その程度のバグを以て ActiveXをシートに貼ること自体をバカだとか言ってる奴は、何かを否定しておけば 「俺は解ってる奴」って気分に浸れて満足という、浅はかで愚かしく無能な子にしか見えない
回避方法があるならそれ使えよw なんで地雷勧めんだバカって事だよ。つか、これ知らねーで勧めてたんだろバカ共は?
ユーザフォーム使えば済むのによくわからねー意地張って誰かのせいにしたがるから手におえねーんだバカは
意固地になっちゃって こういう子とは仕事したくないけど、傍目に見てる分にはちょっと可愛いかもw
さすがバカは自分が優位な気分に立てるかどうかでしか物事考えないからバカなんだな。 バカが余裕のポーズ取ってくれれば動くってならいくらでもポーズ取って満足しててくれて構わんけど、普通に動かんからな。 バカにゃ他人事なんだろうな。
いつまでも脳内Excelくんと仲良くな。
バカ以外の普通の人にシートにActiveX使わない方が良いってのが伝わりゃいいよ。 バカしか見てねえって事もねーだろうし。
961 :
名無しさん@そうだ選挙にいこう :2011/08/08(月) 11:47:25.07
教えてください。 一見時間に見えるあるアプリケーションから取り出した数字 8:15 を計算できる数字に直したい。 8:15の前に半角空白が入ってるみたいな感じで計算出来ません。 尚且つ8:15を十進数8.25に表示させて合計を計算したい。 どんな計算式を入れれば可能でしょうか? 宜しくお願いします。
反論できない指摘を受けて嫌ActiveX君大暴れw
反論もなにもきちんと根拠示してるのになあ バカすげえなあ こういうバカの中では原発もメルトダウンしてねーんだろうなあ 俺が可愛すぎるって事以外全部的はずれなこと言ってるのに悦に入れるとか、ある意味すげえ才能だわ。 人生楽しんでくれ。
>>961 十進数で8.25にしちゃうとたとえば0.45を足したときに結果が無意味なものになるぞ
それでいいの
時間の計算はふつうに足し算引き算できるよ 文字列のままでは無理なので、時間の表示形式にしておくか、=TIME(h,m,d)で変換しておくこと
>>961 >8:15の前に半角空白が入ってる
て前提だと
=TIMEVALUE(TRIM(A1))*24
ちなみに以下でもなぜかいい
=TRIM(A1)*24
>>964 無意味なんかにならないぞ
8:15 --> 8.25なんて形式 普通に使ってるけど
8:15 = 8.25
0:27 = 0.45
だから
8:15+0:27 = 8.25+0.45
8:42 = 8.7
968 :
名無しさん@そうだ選挙にいこう :2011/08/08(月) 12:57:37.54
961です。皆さんありがとうございます。試してみます。とりあえず時間がないのでまた報告します。
>>966 *24 なんてしなくても、結果の表示形式をいじればいいと思うぞ。
>>969 ほっといてやれよ。
大暴れしてるの彼だけだし、本人楽しそうだからいいんじゃね。
971 :
963 :2011/08/08(月) 13:57:02.02
>>977 へーそうなんだ知らんかった
とはいえどうやるのか 今は分かってないけど あとで調べてみるよ
ありがと
973 :
971 :2011/08/08(月) 14:02:00.32
げっ名前欄&アンカ間違えた
名前欄
966=971 です
アンカ
誤
>>977 正
>>970 大変失礼しました
哀れだな
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 不可 F列に数値があって、15以上のときはE列のセルを黄色に塗りつ ぶすにはどーすればいいです?
条件付き書式をE列に設定する =F1>=15
知り合いのNPOにて、ファイルサーバー(普通のパソコンでファイル共有してるだけ)においてある
Excelファイルを端末側のパソコンから開くとえらく時間がかかるようになって、困ってた。
先月の初め頃の話。
まさか、それが>590さんの障害と「原因が同じ」だったとは・・・。
このスレで「エクセルのファイルが開くのが遅くなって困る」というような書き込みがほとんど見あたらず
今日やっと原因がわかった。
Office File Validation (OFV) アドインがインストールされた Excel 2003 でネットワーク上の
ファイル共有から XLS ファイルを開く時に時間がかかる
http://support.microsoft.com/kb/2575312/ja excel file validation でググるといろいろ出てくる。対策はレジストリをいじるか、2007以降にバージョンアップだと!
979 :
975 :2011/08/08(月) 22:26:30.52
2つのシートのAB列に、膨大な数のデータが入ってるのですが、 2つのシートは一応同じデータが入っているはずなのですが、 これをチェックしたいので比較がしたいです。 現在確認されているのは、AB列どちらかに誤字や歯抜けがあったりするので、 それをシート間で相互のチェックをかけたいです。 どうしたらいいでしょうか。 Excelは2003、2010両方あります。
>>982 fc.exeの意味が分からないのですが・・・
そのレベルなら、素直に知ってそうな奴に頼んだ方がいい。 # 要するに fc.exe でググルこともしないような奴に教える気はない。
なんでそんなエラそうなのwwww
988 :
複乳 :2011/08/09(火) 22:31:23.82
>>981 C1=(A1=[book2.xls]Sheet1!A1)
として値で検索、FALSEなら書きなおすとか
行がずれてるならcountifとか
989 :
複乳 :2011/08/09(火) 22:33:27.09
990 :
複乳 :2011/08/09(火) 22:34:31.79
うめ
991 :
複乳 :2011/08/09(火) 22:34:43.57
うめ
992 :
複乳 :2011/08/09(火) 22:42:52.80
うめぇ
993 :
複乳 :2011/08/09(火) 22:43:21.71
まず
2003が至高
995 :
複乳 :2011/08/09(火) 23:27:16.04
オナニーが至福の時
996 :
複乳 :2011/08/09(火) 23:27:47.33
うんこ!
997 :
複乳 :2011/08/09(火) 23:28:15.54
セシウムさん
IF文エディタ最高便利!
999 :
複乳 :2011/08/10(水) 01:22:29.06
ねー
1000
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。