1 :
名無しさん@そうだ選挙にいこう :
2011/03/08(火) 20:08:12.19 ▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★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総合相談所 95
http://hibari.2ch.net/test/read.cgi/bsoft/1293162589/
▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━ ・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 書籍や解説サイトの紹介以来はスレ以外。ここは技術的な質問のみで。
★ルールを無視すると…
>>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分野の話ではないので、ここでは聞かないでください。
★ 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セルを分割 (分割したいセル以外を結合)
上記 「Excelで出来ないこと、仕様上の制限」 は、一般的に出来ないとされていること、出来ないと思われるものです。 間違いがある可能性もあるので、上記に挙がってるもので「コレはこうすれば出来るよ」というものがあったらご指摘ください。 Excel2010についても未確認な項目が多いので変更点が有ればご指摘下さい。 また、ここに書かれてないことでも、Excelで出来ないことはたくさんあります。 ここに書かれてないからといって必ず出来るはずだなんて思わないように。 >▼環境・書式 > ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する 補足 2007以降ではページレイアウトビューの表示時に限り、幅・高さともcm単位で表示され、 指定も同じくcm単位でできる。 ただし大元がインチ系なのでなかなかピタリの値は出ない。1cm→0.98cmのように 近い値に勝手に丸められる。 以上でテンプレ終わり (Excel総合相談所 94からコピペ、一部改定)。
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法) ▼数式・関数 ・ 表示形式以外の書式の取得設定、書式情報を条件とする数式 (ユーザー定義関数) ・ 関数式でセルの選択状態を取得する (VBA) ・ セルの値でパスを補完して、開いてないブックのセルを参照する (VBA) ・ 入力したセルに結果を返す (VBA) ・ 範囲を引数にしての文字列連結 (ユーザー定義関数) ・ 値の書き換え、値の保持 (VBA) ・ 複数の結果を抽出、不定な数の結果を返す (VBA、結果の最大数が解っていれば最大数以上の式を論理式で組む) ・ 空白のセルの部分を上詰め、左詰めなどで表示する (作業セルを使って別セルに詰めて表示なら可能、それ以外はVBA) ・ VLOOKUP,HLOOKUP,MATCH等の関数で、検索語を全半角両方にマッチさせる (ユーザー定義関数) ▼VBA ・ ExecuteExcel4Macroの参照で空セルと0値を区別する ・ セルの値や変数値で直接変数名を指定する (配列、コレクション) ・ VBのコントロール配列と同じような操作をしたい (イベント以外ならコントロール名を「同名+連番」にしてControls(名前 & インデックス)で処理、イベントはクラスでWithEvents) ▼ユーザーフォーム ・ フォーム上から変更したプロパティ値の保持 (シートや外部ファイルに書き出して、次回読み込む) ▼グラフ ・ 棒グラフでひとつだけ突出したデータがあった場合に波線を入れて位置を合わせる (オートシェイプなどで見た目だけそうなるように弄る、別アプリでグラフを作り、オブジェクトとして挿入) ┌┐ 〜〜 ||
スレッド変わってみてないかもだから、 989の方、981です。ありがとございました。
8 :
名無しさん@そうだ選挙にいこう :2011/03/08(火) 22:02:27.15
【1 OSの種類 .】 WindowsXP SP2 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 お願いします。 ・Sheet1のJ列の値がゼロまたは空白ではない場合 Sheet1のJ列の値をSheet2のA1にコピー。 Sheet1のA列の値をSheet2のB1」にコピー。 Sheet1のB列の値をSheet2のC1にコピー。 ・Sheet2を別の新規ブックで保存。 (自パスに) ファイル名は「Sheet1のB列の値+Sheet2のシート名.xls」 ※上記をSheet1の2行目からB列に値がある最終行まで繰り返します。
9 :
名無しさん@そうだ選挙にいこう :2011/03/08(火) 23:20:44.56
前
>>993 様
ありがとうございます。
頂いた画像を見ながら考えています。
前
>>996 様
貰った表がこんな感じで、そこから項目名をくっ付けて
下の表に横並びで書かなければいけないのでこうなってしまってるのです。
上図の様な表が、個別にあと300個くらいあってそこからも一致する値を見つけ出して、下図の横に配置すると言う感じです。
関数で無理ならVBAしか無いと思ってるんですが、上の図の形を崩さずに抽出する方法はありませんか?
>9 >上図の様な表が、個別にあと300個くらいあって〜 ちょっとおたずねします シートが300くらいあるの? それとも前スレ>992でアップされた表でいうと B3:F10 のような表の 行数が300くらいあって、その下に B15:B65 の1次元の表が続くような感じですか?
11 :
10 :2011/03/09(水) 01:18:50.70
>9 こんなのでいいのかな? このマクロはシートに書いてください。 Option Explicit Dim c_i As Range, find_area As Range, c As Variant Dim m As Integer, x As Integer, y As Long, w As Variant, z(4) As String Sub 前スレ992() Set c_i = Range("B3") '←上の表の左上隅のセル位置 Set find_area = Range("B16:B65") '←下の表の範囲 find_area.Cells(1, 1).Offset(0, -1).Resize(find_area.Rows.Count, 1).ClearContents z(1) = "(" & c_i.Offset(0, 1).Value & "、" & c_i.Offset(1, 1).Value & ")" z(2) = "(" & c_i.Offset(0, 1).Value & "、" & c_i.Offset(1, 2).Value & ")" z(3) = "(" & c_i.Offset(0, 3).Value & "、" & c_i.Offset(1, 3).Value & ")" z(4) = "(" & c_i.Offset(0, 3).Value & "、" & c_i.Offset(1, 4).Value & ")" y = 0 Do For x = 1 To 4 w = c_i.Offset(y + 2, x).Value If IsNumeric(w) And w > 0 Then Set c = find_area.Find(What:=w) If Not (c Is Nothing) Then c.Offset(0, -1).Value = c.Offset(0, -1).Value + 1 m = c.Offset(0, -1).Value c.Offset(0, m).Value = c_i.Offset(y + 2, 0).Value & z(x) End If End If Next x y = y + 1 Loop Until (c_i.Offset(y + 2, 0).Value = "") End Sub 処理対象セルは横方向に4列移動してから次行に移るので、前スレ992の例と出力順が異なります。 上の表にある数字が下の1次元の表にないときは出力しません。(前スレ992の表だと250のこと)
12 :
11 :2011/03/09(水) 01:27:48.86
補足 ClearContents の行は、下の表の左隣を作業用として使っている(出力列の相対位置を記録)ので、 毎回クリアするためのものです。なので、下の表がA列にあるとまずいです。 あと、Excel2003までは最大列数が256なので、特定の値にデータが集中するとオーバーフローするかも。
>>8 文通りだとA1B1C1を何回も変えることになるからエスパーした
Sub aaa()
Dim a, b, c, d, e, f, g
Application.ScreenUpdating = False '描画更新ストップ
a = ThisWorkbook.Path & "\Sheet1のB列の値+Sheet2のシート名.xls"
If Dir(a) <> "" Then
MsgBox "すでにあるよ"
Exit Sub 'すでに存在してたら終了
End If
Set b = Workbooks.Add '新規ブック作成
b.SaveAs Filename:=a
b.Activate
Set e = Sheet1
Set f = b.Sheets("Sheet1")
Set g = b.Sheets("Sheet2")
c = Sheet1.Columns(2).End(xlDown).Row
'〜続く〜
'〜続き〜 For d = 2 To c If e.Cells(d, 10) <> 0 Then f.Cells(d, 10) = e.Cells(d, 10) g.Cells(d, 1) = e.Cells(d, 10) f.Cells(d, 1) = e.Cells(d, 1) g.Cells(d, 2) = e.Cells(d, 1) f.Cells(d, 2) = e.Cells(d, 2) g.Cells(d, 3) = e.Cells(d, 2) End If Next Application.EnableEvents = False '警告メッセージを出させない b.Save '新規ブック保存 b.Close '新規ブック閉じる Application.EnableEvents = True Set e = Nothing Set f = Nothing Set g = Nothing Application.ScreenUpdating = True End Sub 違ったらすまんこ
15 :
名無しさん@そうだ選挙にいこう :2011/03/09(水) 08:58:25.99
初心者です。A 列に最大4桁の数字が入っています。 この数字を 例えば 12とあれば、国語12点 1356とあれば、国語1365点 9とあれば、国語9点 となるように 数字の頭と尻尾に文字を入れたいのですが 教えてくれませんか?
>>15 右クリック→書式設定→ユーザー設定→"国語"0"点"
17 :
名無しさん@そうだ選挙にいこう :2011/03/09(水) 12:37:07.55
ありがとうございます。やってみます。
18 :
名無しさん@そうだ選挙にいこう :2011/03/10(木) 16:34:22.71
21 :
名無しさん@そうだ選挙にいこう :2011/03/11(金) 00:13:58.46
はじめまして、失礼します。 今現在以下のような表を作っています A B C D E F G… W 1名前 可不可 数 @ A B C… S 2Aサン 0(不可) 3Bサン 1(可) 6 ○ 4Cサン 0 5Dサン 1 0 6Eサン 1 4 × 7Fサン 2(×のみ可) 2 ・ ・ この様な感じで横は@〜Sくらいまで 縦は30人くらいまで作っています。 この表を改良していき、次のことをしたいのです
22 :
21 :2011/03/11(金) 00:17:00.80
ごめんなさい・・・上のテンプレが切れてました; 【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 1,D列(@)でRAND関数を使い乱数を求め、その数値の最大・最小が誰かを出す 2,最大を○・最小を×として、D列のその人の行にそれぞれ○、×を表示 (*1.この時にB列(可不可)が0になってる人はとばす、3になってる人は最小の時のみ表示) (*2.先にD列〜に○、×を入力している人はそこは○、×にする) 3,○か×がついたらC列(数)に入力した数から-1する。この数が0になったらそれ以上その人に○、×をつけない 4,それをE列(A)、F列(B)…と繰り返していき、それぞれに○、×を表示する (*3.C列(数)はあらかじめ合計が40になるように入力します) (*4.A列には上から名前を入力しますが、後半は空欄が出ます。そこは乱数を求めなくていいです) 最終的にD~W列(@〜S)に○、×がそれぞれ一つずつ、 それぞれの人にC列(数)で入力した数だけの○+×が 出ているようにしたいです。 これをボタンを押すことによって計算させるようにしたいのですが… ここ数日色々と試行錯誤したのですが、どうにもうまくいきませんでした。 もちろん、表の形は変わってしまって構いませんし、RAND関数なども使わなくて大丈夫です。 もしこれが可能そうな方がいましたら、どうか教えてください。 よろしくお願いします。
>>21 RAND関数はワークシートを表示するたびに数値が変わるので、ハードディスクに保存した物を
呼び出すごとに、完全に結果が変わってしまいますが、それでいいのでしょうか?
また、RAND関数と判定結果(○×)は同じセルに入れることが出来ないので、
別の列か別のシートを用意して、そこに数字を入れておく必要があります
RAND関数を使わない場合、○の人と×の人はどうやって決めるのでしょうか?
>>21-22 VBAの方が楽だろうな
とりあえずブックうpして
暇なときにコード組み込んでうpし直してあげるから
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007(ではあるが、2003形式で作成) 【3 VBAが使えるか .】 うーん 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 excel 偶数 抽出 賞状作りをしています。番号と名前、その他情報が振られた表を作成し、 以下のようにマクロで呼び出されるTextBox1〜2に番号を入力すれば 自動で賞状の枠に名前等がリンクされ一気に印刷できるというものを作りました。 しかし、これだと一回の印刷で1枚しか印刷できず、時間もかかり紙も勿体ないので 1回の印刷で一度に2枚分を出したいと考えました。 仮に、A5サイズの賞状枠を二枚並べ、A4として出します。 片方1とするならば2、次の印刷では3と4の番号が入力されるようにしたいのです。 Mod関数を利用すれば偶数奇数に表を分離することが出来そうですが、 それをこの関数に絡ませる知識が全くありません。良い知恵があればよろしくお願いします。 Private Sub CommandButton1_Click() Dim BAN As Long, 開始 As Long, 終了 As Long Unload Me 開始 = CLng(Me.TextBox1) 終了 = CLng(Me.TextBox2) For BAN = 開始 To 終了 [Y1] = BAN ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Next Selection.Select
>>23 俺も文面通りRNDの値を入れたいのかと思ったがおそらく○×だけだとおも
×のみ可が
>>21 で2で
>>22 で3になってるけど2で作った
×のみ可が複数いなければもっと簡単になる(×のみ可だけ残ると詰むから)
Sub aaa()
Dim a, b, c(4 To 23), d(100), e, f(), g, h(100), i, j
a = Columns(1).End(xlDown).Row
ReDim f(a)
Range(Cells(2, 4), Cells(a, 23)).Clear
For b = 2 To a
If Cells(b, 2) = 2 And Cells(b, 3) <> 0 Then 'aaa
g = 0
For e = 0 To 19
If d(e) <> 1 Then
h(g) = e
g = g + 1
End If
Next
For e = 1 To Cells(b, 3)
i = Int(Rnd * g)
Cells(b, h(i) + 4) = "×"
d(h(i)) = 1
'〜続く〜
'〜続き〜 For j = i To 18 h(j) = h(j + 1) Next Next ElseIf Cells(b, 2) = 1 And Cells(b, 3) <> 0 Then f(b) = Cells(b, 3) End If Next For b = 4 To 23 g = 0 For e = 2 To a If f(e) > 0 Then h(g) = e g = g + 1 End If Next i = Int(Rnd * g) Cells(h(i), b) = "○" f(h(i)) = f(h(i)) - 1 If d(b - 4) <> 1 Then '〜続く〜
>>25 For BAN = 開始 To 終了 Step 2
1回目のループでは、BAN=1なので
1:= BAN
2:= BAN + 1
2回目のループでは、BAN=3なので
3:= BAN
4:= BAN + 1
3回目のループでは、BAN=5なので
5:= BAN
6:= BAN + 1
'〜続き〜 For j = i To a - 1 h(j) = h(j + 1) Next i = Int(Rnd * (g - 1)) f(h(i)) = f(h(i)) - 1 Cells(h(i), b) = "×" End If Next End Sub 'B列の(可)とかは文字になっちゃうから消してね
31 :
21-22 :2011/03/11(金) 09:31:06.21
>>23 >RAND関数はワークシートを表示するたびに数値が変わるので、ハードディスクに保存した物を
呼び出すごとに、完全に結果が変わってしまいますが、それでいいのでしょうか?
やっぱり変わってしまうんですよね><マクロとか使えば何とか…と思って頑張ったのですが;;
>RAND関数を使わない場合、○の人と×の人はどうやって決めるのでしょうか?
RANDから最大と最小で○、×を出したのは他に方法が思い浮かばなかったからで、○・×を出せればどのような方法でも大丈夫です
>>24 ありがとうございます
うpしてみましたので、見てくださるとありがたいです
ttp://www.dotup.org/uploda/www.dotup.org1413695.rar.html >>26 ×のみ可は2です。失礼しました;
それと早速VBAありがとうございます
試してみたいと思います
32 :
21-22 :2011/03/11(金) 09:40:53.15
すみません!すっかり大事な条件を忘れてました・・・ ○か×が来たら、その後ろ3マスは○も×も入れないようにしたいです>< 今更になってしまい申し訳ないです;;
> ○か×が来たら、その後ろ3マスは○も×も入れないようにしたいです その条件だと明らかに詰みますよ 例えば 1 Aサン 0 2 Bサン 1 2 ○ 3 Cサン 1 5 ○ × 4 Dサン 2 3 × 2回目まで終わって、さて次に何処に○入れる? Aサンは「0 不可」だから除外、Bサンは一つ前に○来たから除外 Cサンは一つ前に×来たから除外、Dサンは「2 ×のみ可」な上に二つ前に×来たから除外 ほら、○どころか×も、どこにも入れられない 序盤は良いけど、終盤はこうやって何処にも何も入れられずに詰み 詰んだ場合はどうする?そこで処理終了?詰んだ場合のみ「その後ろ3マスは」の条件外して続行?
34 :
21 :2011/03/11(金) 11:18:52.30
やっぱり詰んでしまいますか・・・ 15人くらいはいるから最初の方は大丈夫だと思うのですが、終わりになるにつれ詰んでしまいますよね 3マス条件は外せないので少し前からやり直しに…は出来ないですよね
おそらくシフトの作成でしょ 大方、○×は夜勤で、○が夜勤のリーダーさん 夜勤入り始めの新人さんはリーダー役出来ないから×のみとかそんな感じ はっきり言って詰んだ場合は、途中からじゃあまり意味無いので 最初からやりなおすしか無いけど、それを繰り返すことはVBAならいくらでも可能 ただし、詰まずに結果が出るまでどのくらい掛かるか解らないし うpしてくれたブックの条件なら、確実に「詰まない結果」は存在するけど 条件によっては「詰まない結果」がそもそも存在し得ず、 無限ループに陥る可能性もあるけど、それでも良いの?
シフト作成ならソルバーつかえばいいのに
37 :
21 :2011/03/11(金) 13:14:07.80
>>35 素晴らしいです、お察しのとおりシフトを作りたいです
まさか夜勤まで当てられるとは・・・
無限ループは怖いですね…
途中でとめられるようなら何とか><
>>37 なるほど、だから直後の3つは絶対に空白にしたいわけね
こういうのって勝手に決めるんじゃなくて、みんなの都合を聞いて作るんじゃないの?
あと、ランダムに決めるんじゃなくて一定の決まったパターンにしないと間違いが起こりそう
39 :
21 :2011/03/11(金) 13:32:09.85
>>37 途中で止められるようにも出来るけど、処理速度が落ちるんで
とりあえず数百回ループ回してダメなら一旦終了させ、任意で再度実行としようか?
適当に組んでみたけど、うpしてくれたブックの条件で結果が出るまでのループ回数は、
数十回試した上で、最大380、平均すると100回前後
500回のループ回すのに、数年前のPenM2GHzのPCで1秒掛からない程度だから
とりあえず使えないことはないだろう
ただ休暇の希望とかも出るだろうけど、そういうの一切無い条件で組んじゃったし
21がVBA使えないとなると、そういう細かい調整出来ないだろうから、実用可能かは
解らないけど、それで良いならうpするけど
41 :
21 :2011/03/11(金) 13:54:38.54
>40 それで構いません! VBAはほとんど使えないけどこれを機会に少しずつ勉強して…
42 :
VBA厨 :2011/03/11(金) 14:23:38.10
43 :
21 :2011/03/11(金) 14:29:15.98
>>42 ありがとうございます
前半に偏ってしまうのは悲しいですね…ちょっとそこも考えてみます
ちらっと見ましたが軽く眩暈がしました><エクセル自体ほとんどいじったことなかったので;
かなり大変なことになりそうです^^;
44 :
VBA厨 :2011/03/11(金) 14:39:30.34
まあ前半に集中するのは傾向であって、必ずしも前半のみになるわけじゃなく 3回の奴でも29、30あたりに夜勤が出てくることもあるけどね あと、コードを移植する場合、クラスモジュールにもコードがあるので注意してね これもちゃんとクラスモジュール作って移植しないと動かないから
驚いた。
>>39 夜勤のあとは明けと休みを自動で入れるんだよな?てことは前の月の夜勤の続きの明けと休みは手書きで書いておくのか?
あと早番とか日勤も夜勤と同じように当てはめていくのか?かなり難しい気がするが…出来ないんじゃないか、詰んで
二点質問です。 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】ソルバー 使い方、エクセル 複利計算 @ソルバーについて 以下のように記入しています a1~d1に12.3、34.5、56.7、78.9 a2~d2に0.9、0.8、0.7、0.6 a3~d3に0、0、0、0 a4~d4にroundup(a3,-1)、roundup(b3,-1)、roundup(c3,-1)、roundup(d3,-1) a5~d5に=a1*a2*a4、=b1*b2*b4、=c1*c2*c4、=d1*d2*d4 d6に=sum(a5:d5) (数字の変化を10刻みにしたいと思っています。) ソルバーの設定は 【変化させるセル】a3:d3 【目的セル】d6 【制約条件】なし 【目標値】値 10000 これで実行すると、仮の解が見つかりません、と出ます。 どこがおかしいのでしょうか? A複利計算について a1に10000(初期値)、a2に5%(増加率)、a3に500(増加数)、a4に20(経過日数) として、((((10000+500)*1.05)+500)*1.05)... みたいな感じで20日分、1セル内の計算でやりきるには、 どうすればよいのでしょうか?
48 :
47 :2011/03/12(土) 07:24:03.79
複利については自己解決しました。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】保護 移動 カーソル ロック 出来ない VBAのスレで質問したんですが、こちらだったみたいなので こちらで質問させてもらいます。 保護について教えて下さい。 シートを保護する時にロックをしてるセルを選択出来なくなる する奴あるじゃないですか? あれをやると時々エクセルの挙動がおかしくなります。 矢印キーが効かなくなったり アクティブセルの周りに普段なら出る黒い枠線が出なかったりとか。 スクロールロックが掛かってるとかそんなんじゃないです。 前から時々なってて、ぐぐって調べたんですが 特にこれと言って解決策が見つかりません。 これだという絶対的な発生条件も不明です。なったりならなかったりします。
おう、マルチになっとる…。知恵袋とかで聴くか
51 :
21 :2011/03/12(土) 11:11:10.65
>>46 出来れば夜勤が出たらその後ろに明け休みも自動で表示されるようにしたいです
前の月からの夜勤の続き(明け、休み)は希望勤務に先に入力するようにします
夜勤が全部出たらそれをふまえたうえで早番、2番〜も同じように?出すつもりです
ただ教えてもらったり、途中まで作っていただいたものを見ながら色々調べて勉強してますが
正直自分で作れる気がなくなってきましたね…
>>28 よもや「step 2」をお尻に入れるだけで出来るようになるなんて……
どうもありがとうございました。とてつもなく助かりました。
53 :
VBA厨 :2011/03/12(土) 15:08:18.59
>>51 > 出来れば夜勤が出たらその後ろに明け休みも自動で表示されるようにしたいです
どういう文字や記号を入れるのか教えてくれれば簡単に出来ます
> 前の月からの夜勤の続き(明け、休み)
これも情報があれば簡単に対応可能です
情報というのは、例えばC列の後ろに列を挿入し、前の月が31日までなら、
31日に夜勤だった奴は1
30日に夜勤だった奴は2
29日に夜勤だった奴は3
というように、1日時点で前回の夜勤から何日経っているかとか、(4日以上なら不要)
前月の末3日分のシフトをコピペする欄を用意するとか(但しこの場合は
人が減ったり増えたり入れ替わったりした場合にズレるので注意)
このくらいなら時間くれれば作ってやってもいい
但し条件が一つ
今回の地震の募金が始まったら、1000円以上寄付すること
1日も経たないうちに
>>51 みたいな書き込み出来るってことは被害の大きい地域では無いようだし
上記だけで1000円は高いけど、前回
>>42 分も合わせればそんなに高くは無いだろ
54 :
名無しさん@そうだ選挙にいこう :2011/03/12(土) 17:52:53.60
EXCEL2007,Windows7です。 循環参照のエラーメッセージで出ているのを無視して作業していたら データが消えてしまいました。 データを復元する方法があれば教えて下さい。 <現象> (1)マイドキュメント内の 問題ファイルABC.xls(97-2003形式;サイズ709KB)を ダブルクリックして開く →「循環参照の警告〜」メッセージ表示 →[OK]→グレーの画面が表示される(Sheet非表示、タイトルはABC)。 (2)EXCEL起動→[Officeボタン]→右側に表示されるファイル名ABCを選択 →「循環参照の警告〜」メッセージ表示 →[OK]→タイトルがBook1になり、白紙のSheet1(Sheet2,Sheet3タブ)が 表示される。 ※循環参照の説明画面表示と閉じる操作は省略 よろしくお願いします。
白紙になってから上書きしてないなら、今開いてるのを 別名保存でもしてABC.xlsを開き直す 既に上書き済みかつ自動保存もしてないなら無理、諦めろ、そして 今回の授業料:無くなったデータ 今回の教訓:バックアップはこまめに ということで
56 :
21 :2011/03/12(土) 20:43:28.94
>>53 "夜勤1"と"夜勤2"の後ろに"明け"で"休みです
それでは別欄に先月最終日前が夜勤だった人と最終日が夜勤だった人を
入力する欄をあらかじめ作っておいてそこに入力する形で
募金の件は了解しました
こういう機会でもないとあまり募金はしないのでよい機会だと、させていただきます
>>54 googleが1秒以内に検索結果を出してくる今時後出しで「俺も初めから知ってた」か…
ここまでの馬鹿は初めて見た
58 :
21 :2011/03/12(土) 21:47:50.04
59 :
54 :2011/03/12(土) 21:55:05.33
>>54 ウィンドウズ7ならファイルの復元でもどるよ
61 :
21 :2011/03/13(日) 00:10:27.58
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 EXCEL コンテキストメニュー onaction コンテキストメニューからマクロを実行させたいんですが なぜか実行できません原因が分かる方がいたら教えてください。 ソースは下のような感じで sample1を実行して、コンテキストメニューにコマンド1を追加して コンテキストメニューからコマンド1を選ぶと マクロ"Book1.xls'!myMacro1' を実行できません。このブックでマクロが使用できないか、 すべてのマクロが無効になっている可能性があります。 とエラーが出てしまいます。 しかし[開発]-[マクロ]からmyMacroを実行させるときちんと動きます。 これって何が原因なんでしょうか? Sub Sample1() With Application.CommandBars("Cell").Controls.Add() .Caption = "コマンド1" .OnAction = "myMacro1" End With End Sub Sub myMacro1() MsgBox "印刷を実行します" End Sub
>>62 シートモジュールではなく標準モジュールに
Public Sub myMacro1()
重複のリストを作ろうとしてるのですが 例えば A B C D 山田 山本 山本 2 中村 世路塚 中村 2 瀬戸 古山 山本 坂村 長川 中村 このように C に重複したものを D には 重複した数を表記したいのですどのようにすれば よいのでしょうか? よろしくおねがいします。
65 :
名無しさん@そうだ選挙にいこう :2011/03/13(日) 15:39:21.13
>>64 D1=COUNTIF(A:A,B1)
下にオートふいる。これでB列の名前で重複してるものが1以上になる
後はBをCにコピーなりしてD列を値で貼り付け、並べ替え
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい マクロで計算してるとき、数字と文字だと計算できないのでエラー13になります。 このときだけ、その計算式を飛ばして続行させるには、どう書けばいいですか? Sub Macro1() a = 2 b = "b" c = a * b ←ここでエラーになる End Sub
IfでIsNumeric検査するのが基本だが On Error Resume Nextで強引に通す方法もある
>>66 if文でbが数字か判断してはじくか<On Errorで処理続行。
今、単語帖を作ろうと思ってます。 英語の文章から単語を収集したいのですが、 例えば I love you. Do you like car. とあるとき I love you . DO you like car . というように自動的に変えるにはどうすればよいのでしょうか? Excelは2003を使っております。
>>69 VB使用ならsplit使って配列化&セル書き込み。
>>69 区切り位置でスペースで区切る。
そのあと行と列を入れ替える。
↑この工程をマクロで記録しておく。
72 :
69 :2011/03/13(日) 21:50:04.28
73 :
66 :2011/03/13(日) 22:11:59.57
ご回答ありがとうございます。
>>67 On Error Resume Nextは、できれば使いたくないです。
でも、計算する前に設定して、計算が終わったら解除が簡単かも。
>>68 前者は数字か否かの法方を調べてみます。
後者は、どういうことでしょうか?
If Error = エラー13 Then みたいな分岐はできないでしょうか?
>>73 >If Error = エラー13 Then みたいな分岐はできないでしょうか
可能。On Error Resume NextとErr.Numberを使用する。つまり
If Err.Number = 13 Then
みたいにすればいい。
75 :
66 :2011/03/13(日) 23:14:38.96
>>74 ご回答ありがとうございます。
明日の早朝から停電なので、もう寝ます。
すみません。
76 :
21 :2011/03/14(月) 04:53:39.83
>>53 ニュース見てまだ想像以上に酷いと知った
早いほうがいいと思い期待値ということで5000円義援金募金しました
77 :
VBA厨 :2011/03/14(月) 10:47:17.42
>>76 募金ありがとうございます
とりあえず形になったので「
[email protected] 」にメール下さい
募金の交換条件をお願いしておきながら、関係ない人にまでばらまいたら
筋が通らないので、返信メールにファイル添付します
ただし、仕事と停電の関係で、返信は遅れるかもしれません
お約束の
・「○」「×」の替わりに「夜1」「夜2」を入力し、その後に「明」「休」を自動入力
・前月末の夜勤状況を入力することで、繰越の「明」「休」入力の自動化と、そこに夜勤割り振りの禁止
と
・夜勤回数が少ない者の夜勤が前半に偏らないように修正
但し「偏る傾向」を修正しただけで、必ず満遍なく入るようにした訳ではなく完全ランダムなので、
乱数の出方によっては、前半あるいは後半はたまた中頃に集中することもある
などを含め、
勝手にいくつかの機能を追加をしました
何、この腐ったやりとり
被災状況を鑑み、知識と労働力の提供の替わりに募金を促す奴 その意図を酌み取り、募金を承諾する奴 それを腐ったやりとりを茶化す奴
最初からメールでやれボケってことじゃ
最初は地震の前な件
確かにw
それもそうなだ
むしろ、「俺にくれ」じゃなくて「募金して」なのは、腐ってるどころか美徳を感じる 更には1000円って言われてるのに5000円募金する彼にも美徳を感じる
つーか、そんなの交換条件じゃなく言われるまでもなく募金しろと。
スレ違いだ。そろそろやめよヴぜ
つーか、チャリティー活動みたいなものだろ
windows vista のexcel2007で質問なのですが,テーブル機能とフィルタ機能の 2つの使い分けみたいな基準ってなんなのか簡単に教えてください。どちらも,同じような 機能のように思えてどう使い分ければいいのかよくわかりません。 よろしくお願いします。エクセルはあまりつかっていない初心者です。
フィルタはテーブル機能の一部です
フィルタは,テーブル機能の一部なのに(どちらもよく使うので)タブ内ににどちらも表示されていると いうことでいいですか? どうもありがとうございました。
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 お世話になります。 エンターキーを押すと横に移動する方法を教えてください。
>>91 オプション > 編集 > 入力後にセルを移動する方向
を「下」から「右」に
byExcel2003
ただ、一時的にやるなら範囲選択という手もあるけど
>>91 ご存じでしたらすいませんが、Tabキー押せば右に移動しますよ。
>>91 2010の場合、
ファイル→オプション→詳細設定→編集設定→”□Enterキーを押した後にセルを移動する(M)”にチェックを入れ、方向(I)で”右”を選択。
【Excelのバージョン】 Excel2010 B列に入力した項目がA列に無い場合に、入力したセルの色を変えるにはどうすれば良いでしょうか?
>>95 ホーム→条件付き書式→新しいルール で設定してください。
97 :
名無しさん@そうだ選挙にいこう :2011/03/17(木) 00:42:12.94
【1 OSの種類 .】 Windows7 or Mac10.6 【2 Excelのバージョン 】 Excel2010 or 2011 【3 VBAが使えるか .】 少し 【4 VBAでの回答の可否】 可 VBAのユーザーフォーム上で他のExcelファイルを選択し、開けるようにしたいです(ハイパーリンクなどで) その際にフォーム上にチェックボックスを配置し、そのオンオフによって読み取り専用/書き込み可を選択したいと思ってます チェックボックスを使い、ファイルを読み取り専用で開くにはどうしたら良いでしょうか
>>97 ReadOnly:=True
これで理解できなければ君には無理
99 :
名無しさん@そうだ選挙にいこう :2011/03/17(木) 01:16:19.01
就活しています。 自宅のPCはExcel2002(OfficeXP)ですが、 中小企業さんではExcel2003が一般的でしょうか?
>>100 むしろ大きいところのほうが可能性は高いかもね。
なんせ、用意しなくちゃならないPCおよびソフトの量が半端じゃないもの。
>>100 大企業勤務だけど、大企業ほどまだ2003
中小はそろそろ変わってきてるんじゃね?
どっちかをしっかり勉強しておけば、他のバージョンにも対応できるよ
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 R1 SUBTOTAL(109,OFFSET(R3,,,COUNTA($C:$C)-1,1)) 現在上記の用に表示中のR列の合計を表示させています。 これに手を加えて、Q列が空の場合には無視してQ列に数字が入っている場合のみ合計する という感じにするにはどうしたらいいでしょうか?
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 vba 最小値 ある複数のセルに、0を含む任意の数が入っています。 その最小値をvbaで求めたいのですが、min関数だと0を返してしまいます。 求めたいのは、0以外の最小値です。 vbaを使わない方法はいくつか分かったのですが、vbaで処理したいと思います。 何か良い方法があれば教えていただけないでしょうか?
108 :
103 :2011/03/17(木) 16:44:33.46
質問がおかしかったorz P Q R 01 ■ 02 ー ー ー 03 111 555 300 04 300 500 05 06 100 07 999 08 1000 (非表示列) ・ 99(可変) A3-R99までデータが入っており、A2-R99までフィルタをかけています。 現在はR1に SUBTOTAL(109,OFFSET(R3,,,COUNTA($C:$C)-1,1)) が入っており、 R1には R3からR99の合計1,899 が表示されます これに手を加えて、非表示列は無視しP行かQ行にデータがある場合のみ合計するという風にしたいのです。 この場合出力したい値は、800となります。 よろしくお願いします。
エクセルで出力した結果で複数ある中の任意のランプを光らせたい。 そういった質問はここでいいのかしら? そういった用途のランプがあるかないか? パソコンとランプの接続方法。 それらのプログラムというかそういった諸々へアプローチするためのウェブサイト。 以上の事を教えて欲しいの。
>>110 プログラム板のほうがいいんじゃないか?
つか、その回路はできているのか。
>110 原始的な方法としては、画面上の複数のセルの背景を計算結果でそれぞれ黒と 白(塗りつぶしなし)にして、画面に密着させたフォトダイオードやCDSで光を 検知させる→トランジスタとリレーでランプを制御する というところかな。 (フォトダイオードなどは上記「複数のセル」に対応するように配置しておく) PCと電気的に接続しないのでPCを壊すリスクはありません。 インターフェース・ボードを使う方法だとエクセルだけの知識ではムリ。
113 :
112 :2011/03/18(金) 00:40:39.19
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 sumif 複数条件 SUMPRODUCT 範囲 日付が混在しているリストで、3種類の個数合計を月毎に出力する にはどうすれば良いですか? [リスト] 日付 項目 個数 2011/01/02 りんご 3 2011/01/03 ぶどう 2 2011/01/04 いちご 4 2011/01/10 いちご 3 2011/01/20 りんご 4 2011/02/10 いちご 1 2011/02/04 ぶどう 5 2011/02/15 いちご 3 2011/03/02 りんご 4 2011/03/10 いちご 3 2011/03/04 ぶどう 2 [出力] ・1月 りんご: いちご: ぶどう: ・2月 りんご: いちご: ぶどう:
>>114 数式だけでやりたければ、作業列を作って
日付からMONTH関数で取り出した数値と項目を合体
(「=MONTH(A3)&B3」として「1りんご」とする)
で、この値を使ってSUMIF
117 :
名無しさん@そうだ選挙にいこう :2011/03/20(日) 22:49:11.98
A B C 1 100 100 2 110 210 3 120 320 ・ ・ ・ CにBの合計を表記したいです。 C1=SUM**:**) 教えてください。
118 :
名無しさん@そうだ選挙にいこう :2011/03/20(日) 22:49:56.42
A B C 1 100 100 2 110 210 3 120 330 ・ ・ ・ です。
>>117 SUMの必要なし
C1: =B1
C2: =C1+B2
無駄にSUM使わないことに拘って式を2種用意するのか スマートじゃないな
SUMが無駄なんじゃなくて
SUM使わないことに拘るのが無駄
その無駄の結果、
>>199 みたいに一つの式をフィルコピーすれば済むところを
>>120 みたいにC1とC2に別々の式を入れなければならなくなってる
「SUMを使わない」という無駄な方法 という文章なのだと思う
SUMはプレミア
123はヴァカ?3万行くらいでB1を変えてみりゃすぐわかるだろうに ちなみにSUMが無駄ってことはない 119みたいな使い方が無駄 普通は1行目に見出しがあるから=SUM(C1,B2)とすりゃよい
お前らしょーもないとこで論争するの好きだなw どう見ても>119の方が早いし便利 >120でもこの量なら問題ないし、最初に思いついたのがこれならこれをさっさと採用すれば良いだけの話 こんなつまらん事で論争するのが一番の無駄
>>117 は釣りで自作自演だろ?
=SUM(B$1:B1)がよくないって今時みんな知ってるもんな。
>>129 「SUMの必要なし」とか大口叩いて恥かいた120が
根拠もなくほざいてるだけだから気にするな
=SUM(B$1:B1)の無駄が分からないやつは少し頭が弱いな。 俺は無駄ってわかってても使うけどな。 行の削除でも#REF!にならん。
>>135 オツムが弱いのはオマエだw
自分だけは解ってる風に装っても
オマエより上手の奴にそんなハッタリは通用しない
>>135 天才の
>>135 様愚民共に示してやってください!
sum使いはどれだけ愚かか!さぁ!さぁ早く!
私には分かりませんwww
あんまり暴れるなよw
暴れすぎると後で余計に恥ずかしいからな 素直に自分の無知を認めるが良かろう
この累計の出し方って何年おきかに必ず論争がおきるよね。
ここはレベルが低いんだから正論吐いてもしょうがないよ。
一般的には
>>119 で十分だな。
行削除にも対応してるようだし。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 不可 ピボットで、元の単位が(円)のとき、(千円)や(百万円)の単位で 表記するにはどうすればいいですか? 値を別シートへコピペする以外に何かあれば教えてください。
>>141 セルの書式を「0, 」にすれば千円、「0,, 」にすれば100万円単位になるよ
143 :
名無しさん@そうだ選挙にいこう :2011/03/21(月) 19:23:26.16
超初心者なんですがお願いします 画面をいじってたら上の方の「A、B、C・・・」の横棒の部分が 全てオレンジ色になってしまい 一枚続きだった画面上の紙が途中で縦に切れ目が入ってしまいました 元の画面に戻すにはどうしたらいいのでしょうか? よろしくお願いします。
>>143 右下の表示ボタン(3つくらいならんでる)を適当に押す
【1 OSの種類 .】 WindowsVista
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 ?
A1にある文字列をB1のURLをクリックすることで標準ブラウザで検索したいです。
例えばYoutubeでは
「
http://www.youtube.com/results?search_query=%s&aq=f 」
の「%s」の部分を任意の文字列にすれば検索できるので、色々変えてみたのですがうまくいきません。
どのようにしたら可能でしょうか?
よろしくお願いします。
HYPERLINK関数で
REPLACE関数は要らない
151 :
141 :2011/03/22(火) 00:50:50.71
>>142 >>144 ありがとうございます。
表記は四捨五入で構いません。
0,で確かに(千円)単位になりましたが、カンマも打てるでしょうか?
(例えば、元の数値が 1,234,567 なら、1,235 と表記したい)
Excel2007で情報を表状に管理したいのですが 画像を単純に貼り付けるとセルとは関係なくワークシート上に浮かぶような感じになります。 画像をセルに固定して管理し、かつクリックしたときだけ表示されるようにできたりしますか? Excelでできないとすると、やはりHTMLなどでWebページを作成した方がよろしいでしょうか? よろしくお願いします。m(__)m
>>154 VBAで出来るから自分でコード書いてね (
>>3 ★2参照)
まあHTML解るなら、そっちの方が楽だと思うが
>>155 早速ありがとうございます。
VBAでやる場合のヒントをもう少し頂けないでしょうか?
157 :
156 :2011/03/22(火) 17:06:49.54
すみませんでした。あとは自分で調べます。 ありがとうございました。。
158 :
141 :2011/03/22(火) 22:30:12.63
159 :
名無しさん@そうだ選挙にいこう :2011/03/23(水) 00:05:22.59
a1からd2のセル範囲に値がA,B,Cがあったとしてそれをe1に返すにはどうすればいいですか? a1からd2のセル範囲でAが2つあるかもしれないし、白紙かもしれません。 白紙ならそのまま空白でいいです。ABCが同時にセル範囲にあったらAを優先する形にしたいです。 お願いします。
160 :
名無しさん@そうだ選挙にいこう :2011/03/23(水) 00:44:39.88
図形の曲線を書くのですが線の色が線なしでかかれる為、いちいち図形の書式設定で色を黒に選択しないといけません。既定の図形に設定後に書いてもまた線なしで書かれます。何ででしょうか?
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】エクセル 左矢印 修正 エクセルでセルに数式入力してる時間違いに気付いて左矢印で治しにいこうとした時 左矢印押したらその左のセルのアドレス?(D4で入力してたらC4)が表示されるので設定でなんとかする方法はないかと調べてみた結果F2キーを押せばその場で修正出来ることがわかったのですが F2キーを押した状態をデフォルトに設定することは可能ですか?
>>159 IFで
>>160 うちでは一度既定に設定すれば曲線もその既定設定通りになる
君が何か間違えているんだろう
>>161 毎回設定するのが面倒ってことか?
VBAでも設定できるところだから、VBA使えばどうにでもなるので
あとは毎回手動で設定する手間と、自動化VBAコード書く手間のどっちが面倒か考えてお好きなように
>>162 その話は過去に何十度も出てきているが不可能です
因みに俺はAutoHotkeyというソフト使って、[かな/ローマ字]キー(スペースの2つ右)をF2に変えてる
F2はExcel以外でも何かと多用するキーだからね
164 :
162 :2011/03/23(水) 08:44:47.61
そうでしたか・・・ありがとうございます
>>162 上の数式バーで編集することを習慣付け給え。
166 :
161 :2011/03/23(水) 21:36:44.34
>>163 おっしゃる通り、毎回設定するのが面倒って事です。
VBAではどうコード書けばいいのでしょうか?
167 :
名無しさん@そうだ選挙にいこう :2011/03/23(水) 21:36:49.90
>>163 ありがとうございます。Excel97の方がストレスなく図形が書けます。2010はストレスばかりです。曲線に限らず矢印を書くのに先端を変えて既定設定しても変換されません。ですが直線を引くと既定設定の矢印になります。もう訳わからないです(゚ω゚?)助けて下さい
168 :
名無しさん@そうだ選挙にいこう :2011/03/24(木) 09:58:59.13
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 ほんの少しだけ 【4 VBAでの回答の可否】 可 Sub Macro1() a = InputBox("") Columns("A:O").Select Range("O1").Activate Selection.AutoFilter Selection.AutoFilter Field:=6, Criteria1:=a, Operator:=xlAnd Selection.Copy Sheets("シート2").Select Range("A1").Select ActiveSheet.Paste Sheets("シート1").Select Selection.AutoFilter Range("A1").Select Sheets("シート2").Select Selection.AutoFilter Range("A1").Select End Sub 上記6行目の【Criteria1:=】aの検索条件を部分一致(aという語句を含むもの)にしたいのですが、 上手く行きません。 マクロの記憶でオートフィルタを動作させて確認して見ましたが、 "*語句*"という形で処理されており、これを【語句】部分に変数を入れても 変数名を検索対象としてしまいます。 変数の値を部分一致で検索させることは可能でしょうか?
>>168 アンパサンド(&)で結合。
"*" & 変数 & "*"
171 :
名無しさん@そうだ選挙にいこう :2011/03/24(木) 11:08:21.38
windows7 64bit エクセル2010を使用。 セル内に文字を打ち込む時 文字入力して1回打ち込むたびに 日本語入力がキャンセルされて英語入力になるのですが どうしたらいいですか? エクセル以外のワードやテキストでは そんなことならず普通に入力できました。
同じ環境だけどそんなことにはならんなあ 壊れてないとしたら、入力規則でIME入力モードを固定してるくらい?
173 :
名無しさん@そうだ選挙にいこう :2011/03/24(木) 11:36:22.38
>>172 具体的には
どこを どうしたらいいですか?
具体的に「入力規則」の「IME入力モード」って書いてあるじゃん
>>175 うちでは出てる
逆に消す設定がないか探してみたけど見当たらなかった
>>175 回答、どっちに書けばいい? 俺もその状態になったけど回避できた。
178 :
175 :2011/03/25(金) 08:47:02.29
177様 こちらでお願いします!
オク!でOffice2010を購入しようと思うのですが 元々PCにバンドルされていたものの場合出品者がPCからそのオフィスを削除していないと 購入してもインストールできないということになるのでしょうか? 一応Office自体は未開封新品です
出品者がPCからそのオフィスを削除していても使えません。 バンドル品は、セット購入したPC以外で使えない故に安いのです。 そもそもバンドル版OfficeはPCとセットでなければ中古販売や譲渡が出来ないものなので 出品自体がライセンス違反です。
>>178 177じゃないけど。
左上のボックスに出ているときはポップアップが出てこない、とかじゃないの?
>>180 そうなんですか?!
オク!では結構たくさん出品されているので使えるものと思ってましたが
使えないのであれば落札してる人たちは何が目的で・・・
騙されてるか、不正利用目的 でも不正利用のリスク覚悟の上なら タダでの不正利用も可能なのに 半端に金払ってまで不正利用するのはバカバカしいと思うけど
最近はwinny辺りの取り締まりが厳しいからハンパに金払ってるんじゃないかな まぁ、やめたほうが良いとは思う たかだか数千円で人生棒にふることもないでしょう
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 SP3 【3 VBAが使えるか .】 可 【4 VBAでの回答の可否】 否(配布予定があるので出来る限りVBAで実装したくないです) 【5 検索キーワード 】 Excel 文字列 検索 列に文字列を格納して指定された1つ上の行の文字を返す 関数を用意したいのですがどのように実装したらよいでしょうか A 1 文字列 2 AAA 3 BBB 4 CCC 5 DDD 6 EEE 7 FFF この場合にFFFを対象にした際にEEEが出力させるものです 申し訳ありませんが宜しくお願いします
>>185 「指定された・・・」ってどういうこと? どっかのセルで「FFF」という文字列があったら他のセルに「EEE」を返すってこと?
それとも 「A7」って指定するってこと?
>>185 indexとmatchを使用。match-1で一行上になる。
エラー処理等は自分で考える。
188 :
複乳 :2011/03/25(金) 18:17:27.88
>>185 B1=INDEX(A:A,MATCH($A$1,A:A,1)-1)
×関数を用意したい
○数式を用意したい
な。VBAで回答されまっせ
189 :
名無しさん@そうだ選挙にいこう :2011/03/25(金) 19:24:18.52
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 VBA 最大値 範囲 質問させていただきます B1~B10に数値(0〜100、ダブりなし)を入力しておいて 実行すると最大値の入っていたところの横(C列)に"最大"と表示し数値を消す というマクロを考えているのですがうまくいきません どのようにすればよいのでしょうか? 例えばB5が一番大きな数値ならC5に"最大"と表示したいです
>>189 =IF(ROW(B1)=MATCH(MAX($B$1:$B$10),$B$1:$B$10,0),"最大","")
こんな感じ?
191 :
189 :2011/03/25(金) 19:37:50.43
>>190 早速ありがとうございます
そうなるのですが、それをVBAで出来るようにしたいです><
192 :
VBA厨 :2011/03/25(金) 19:52:41.92
>>191 Range("B1:B10").Find(WorksheetFunction.Max(Range("B1:B10"))).Offset(, 1).Value = "最大"
193 :
189 :2011/03/25(金) 20:07:28.03
>>192 早いですね^^;
出来ました!ありがとうございましたm(_ _)m
194 :
161 :2011/03/25(金) 20:15:53.63
>>161 です。
どなたか答えて頂けるかた、いらっしゃいませんか?
マルチw
答えは出てるじゃん コードは自分で書ける(VBA使えるか=はい)って書いてるのに 丸投げでコードまで書けってのか?
197 :
161 :2011/03/25(金) 20:31:06.87
VBAを使用できる環境だから「はい」と記載しています。 コードを書いてもらえたら助かります。
>>192 たまたま
>>189 はうまくいったらしいが、数式の戻り値だと初期状態じゃうまくいかない。
With Range("B1:B10")
With .Item(WorksheetFunction.Match(WorksheetFunction.Max(.Cells), .Cells, 0))
.Offset(, 1).Value = "最大"
.ClearContents
End With
End With
>>193 たまたまうまくいったようだが、もし数式の戻り値だと
>>192 は初期状態じゃうまくいかない。
With Range("B1:B10")
With .Item(WorksheetFunction.Match(WorksheetFunction.Max(.Cells), .Cells, 0))
.Offset(, 1).Value = "最大"
.ClearContents
End With
End With
無駄が多いな
201 :
189 :2011/03/25(金) 21:00:54.06
>>198 そうなのですか?ちょっと難しいですが;
そちらで試してみます
続けて質問になってしまうのですが、
さっきの最大を求めるのでD1,E1,F1に(仮に)1と入力されていた場合
B1に入力されている数値を消して、そののち最大を求める
これをB1~B10まで同じようにしたいです
こちらの条件は自分で考えようと思っていたのですが、D1,E1,F1のどれか一箇所にでも
となると分からなくなってしまいます
すみませんがこちらもお願いいたします
ほれ。あとお前もうくるなよw With Range("B1:F10") With .Item(WorksheetFunction.Match(WorksheetFunction.Max(.Cells), .Cells, 0)) .Offset(, 1).Value = "最大" .ClearContents End With End With
177しね
>>175 選択範囲が画面内に収まっていれば出ない。
画面内で収まらない場合に表示されるようですが。
205 :
189 :2011/03/26(土) 07:26:35.39
ありがとうございました
206 :
名無しさん@そうだ選挙にいこう :2011/03/26(土) 07:59:04.13
177様 こちらでお願いします!
207 :
175 :2011/03/26(土) 09:22:45.46
あなたは誰???? あと、書き込むのなら回答を書いてくださいね!
初歩的な質問ですみません。 Sheet1のI列の一番下からL列の一番下までの値を、 Sheet2のD5からG5にコピペするマクロを自動記録しました。 Sub Macro1() Range("I26").Select Selection.End(xlUp).Select Range("I8:L8").Select Selection.Copy Sheets("Sheet2").Select Range("D5").Select ActiveSheet.Paste End Sub これを手直しして次のように書きましたが、2行目で止まってしまいます。 Sub Macro2() Range(Range("I65536").End(xlUp), Range("L65536").End(xlUp)).Copy Sheets("Sheet2").Range("D5").Paste End Sub どう直せばいいでしょうか?
65536+5行が最大行を超えるからエラーになってんじゃないの
違う カンマ取れ
俺の2010だと問題なく動く
>>208 Pasteの書き方が違う。
コピー先の先頭Range選択してからPaste。または引数で指定。
Range(Range("I65536").End(xlUp), Range("L65536").End(xlUp)).Copy
With Sheets("Sheet2")
.Paste .Range("D5")
End With
相対範囲がわかっているならもっと簡単に
Sheets("Sheet1").Range("I65536").End(xlUp).Resize(, 4).Copy
Sheets("Sheet2").Range("D5").PasteSpecial
または一行で
Sheets("Sheet1").Range("I65536").End(xlUp).Resize(, 4).Copy _
Sheets("Sheet2").Range("D5")
カンマじゃなくてピリオドじゃないの?
214 :
208 :2011/03/26(土) 23:01:05.40
【テンプレ省略】 自治体などから放射線量が公表されてますが、累積被曝量の計算は 以下で間違ってませんか? 1日1行。放射性物質はすべてヨウ素(半減期8日)と仮定してます。 今日の放射線量(μSv/日) 累積被曝量(μSv) [A2](測定値) =[A2] [A3](測定値) =[A3]+[A2]*2^(-1/8) [A4](測定値) =[A4]+[A3]*2^(-1/8) : : よろしくお願いします。
216 :
215 :2011/03/26(土) 23:51:36.83
すいません、訂正 今日の放射線量(μSv/日) 累積被曝量(μSv) [A2](測定値) =[A2] [A3](測定値) =[A3]+[B2]*2^(-1/8) [A4](測定値) =[A4]+[B3]*2^(-1/8) : :
間違ってます が、それはExcelの使い方が間違っているのではなく 計算理論が間違っているので、ここではなく そっち系のスレで質問してください
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 ピボットテーブルで売り上げ金額を集計してますが、 該当するデータがないときセルが空白になります。 元データを修正せずに、0と表示することは出来ますか?
うん
ありがとうございます
いえいえ
223 :
名無しさん@そうだ選挙にいこう :2011/03/28(月) 08:33:18.24
あのーやり方を聞いてるんですがね。
半端にテンプレ端折る人は 可否だけ答えて貰ったら、後は自分でなんとかしろ まともな回答もらえるのは、まともな質問した奴だけの特権
たしか右クリックのオプションかなんかから空白セルに表示する値設定できなかったっけかな?
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 エクセルで、下記のようなデータベースの元が作りたいです。 どなたか作り方をご教授願えませんでしょうか? シート1、2、3に、それぞれA商店、B商店、C商店と名前を付ける。(データ入力用シート) シートの中には商品の分類(「飲料」「果物」「野菜」など)が縦に並んだ表があり、 その項目の中に「りんご」「バナナ」のような商品名と、その商品の個数を入力できるようにする。 シート4には、商品分類の表があり、その分類の名前をクリックすると、シート1、2、3からその分類に入力した商品とその個数、引用元のシートが全て羅列される。(データ集計用シート) ↑こんな感じにしたいのですが、シート4にどういう処理を施せばこういった事ができるのかがわかりません。 もし分かる方がいらっしゃったらどうかお願いします。
> クリックすると でやりたければ、VBA無しには不可能
>>226 > シート1、2、3に、それぞれ名前を付ける。
シート名の変更をパソコンにやらせようと思ったらVBA使わないと無理
229 :
226 :2011/03/28(月) 13:42:34.79
ありがとうございます。
VBAというのを使った事がないのですが、それがなければできないのであれば、
それを使ったやり方でお願いします。
>>228 シート自体に名前をつけるのは自動でなくても大丈夫です。
>>229 自分でコード書けるならヒント教えるけど
書けないならまずはブックをうpだね
で、暇で優しい人が現れるのを気長に待つ
>>229 とりあえずシート名を変更するVBA
Sheets(1).Name = "A商店"
Sheets(2).Name = "B商店"
Sheets(3).Name = "C商店"
あとは、何をやりたいのか質問が大雑把すぎてよくわからん
用途だけ見ると3シートそれぞれに入力して4シート目に集計らしいけど、 ゼロからやるなら4シート目に商店フィールド持たせた伝票データみたいなのを入力してく方が、構成的にはらくそうだけどなあ。 何か調べたい場合はオートフィルタなりピボットで絞り込めばいいわけだし。 商店ごとのデータ別シートにまとめたいならフィルタしてコピーでもすりゃいいだろうし。
233 :
227 :2011/03/28(月) 19:31:35.21
VBAはどうやってそれをやるのですか?
答えられる能力が乏しいバカが偉そうにwww
236 :
名無しさん@そうだ選挙にいこう :2011/03/29(火) 00:11:26.01
エクセルの住所録からkmlファイルに変換してGoogleマイマップにインポートした時 画像入れることってできませんか?
237 :
名無しさん@そうだ選挙にいこう :2011/03/29(火) 00:12:41.74
できます。
238 :
名無しさん@そうだ選挙にいこう :2011/03/29(火) 00:20:49.50
>>237 サンプルでエクセルからkmlに変換できるファイル見つけたんですけど
それだとインポートした時、改行も画像も入れられないんです。
VBAもいじれないんですが教えていただけないでしょうか
>>238 君が、ここで教えて欲しいことがあるように、俺等もさ
君がどのOSと、どのバージョンのExcel使ってるかとか
VBAが使える人なのか、VBAでの回答でも構わないのかとか
いろいろ教えてほしいことがあるわけよ
でもね、君はそういう
>>1 にも書いてある
俺等の教えて欲しいことにちゃんと答えてないでしょ
>>3 ★2には、それらに答えないとまともな回答はもらえないと
注意書きまでしてあるのに
だからそういう奴にはお引き取り戴くのがここの習わし
いまさらテンプレ書いて出してきてもダメ
ルール無視した質問を撒き散らしても、質問し直せば回答貰えるんじゃ
一向にこういうバカ質問者が減らないんで
今回は教訓として、回答無しでお引き取り戴こうか
偉そうだなw
でも言ってることは何も間違ってないw
242 :
名無しさん@そうだ選挙にいこう :2011/03/29(火) 07:08:55.01
回答位剤の書き込みはやめてくれませんか?
つーか、テンプレに書いてあることを少しキツめに言ってるだけやんw
いいからさっさと教えろや
> 教えていただけないでしょうか に答えればいいわけね 回答:「イヤですw」
>>236 に回答できる頭(つまり、VBA、xml、kmlを理解できる頭)がありながら
バカ質問者を甘やかして助長し、バカ質問者を増長させるような愚行をする者は居ないと思われ。
if is回答に必要な情報(質問文) then print 回答 else print "お引き取り下さい。"
function is回答に必要な情報(質問文 as string) as boolean
if instr(1, 質問文, OSの種類) = 0 Then exit function
if instr(1, 質問文, Excelのバージョン) = 0 Then exit function
if instr(1, 質問文, VBAが使えるか) = 0 Then exit function
if instr(1, 質問文, VBAでの回答の可否) = 0 Then exit function
is回答に必要な情報 = true
end function
>>239 出し直しもダメとかかわいそうすぎてワロタ
>>236 ヤフー知恵遅れでもいけば?
あそこなら答えてくれるよ。多分。
そこは 「ここじゃ答える空気じゃないが、向こうで俺が答えてやるから 阿呆知恵遅れに来い」 じゃないのか? 無責任すぎてワロタ
>>248 いや、kmlとか知らないから答えられなかったのよ
知ってたら答えてたんだけどね
>>249 知らない言葉が出てきたら、回答の意思がなくてもとりあえずぐぐるだろjk
無駄知識が増える
こういう地道な積み重ねができるやつとできないやつの差になる
エクセルの範疇なら答えるけどグーグルマップとかはさすがにめんどい あと画像がどう格納されてるかわかんねーしもう聞いてもいそうにないし
お前らが無能なのは分かったから他所でやってくれ
「お前ら」は一人称じゃないぞ
おもしろいとおもってんのかねそれ
皆に「お引き取り下さい」「他いけば?」「他所でやってくれ」と言われて236涙目
xml解ってればkmlなんて楽勝だけど xmlから、更にはVBAでのxml操作から始めるとなると結構大変かも
間違えてプログラム板のVBAスレに書き込んでたのでこちらであらためて質問させてください 上記条件付書式のコピーについて質問です Z1に入力した数字次第(○○以上○○未満の場合)で、W1セル背景が5段階に変色するという書式をAND関数を使って設定しています 以降入力数字に対する変色は同条件で、Z2に入力したものをV1に反映、Z3に入力したものをU1に反映と、縦の入力データを横左方向に出力、という風に一括で書式コピーしたいのですが方法はあるでしょうか 現状W1をコピーすると、V1にもZ1からデータをひっぱってくる数式がコピーされてしまいます W1セルに対して Z1<5001 のとき背景赤色 AND(Z$1>=5001,Z$1<10001) のとき背景黄色といった感じで記入してます $の位置が悪いか不要なんでしょうか
259 :
238 :2011/03/29(火) 19:48:34.58
説明不足で失礼しました。 エクセルの住所録をkmlに変換し、グーグルマイマップにインポートした時 それぞれのポインタで各種データや画像が表示されるようにしたいです。 色々と検索してみたところ、変換すること自体はできるんですが インポートした時に画像を入れたり改行したりする方法がわかりません。 よろしくお願いします。 【1 OSの種類 .】 Windowsvista 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 excel kml 変換など
260 :
名無しさん@そうだ選挙にいこう :2011/03/29(火) 19:55:38.03
無理です。
>>259 もう遅いよ
二度と答えは出ないからさっさと諦めて死んでね
居るよね、不躾な質問を叩かれると > 回答以外の書き込みはやめてくれませんか? とか強気で言ってたのに、しばらくすると それは別人ですみたいな顔して、下手に出て質問し直す奴w
263 :
259 :2011/03/29(火) 20:05:02.82
いいからさっさと教えろや糞が
回答位剤の書き込みはやめてくれませんか?
位剤ってなんですか? 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 位剤
>>259 > バカ質問者を甘やかして助長し、バカ質問者を増長させるような愚行をする者
. . .
が出てくることを祈って 黙 っ て 待つか
~~~~~~~~
ここでの質問取り下げて他に行くかしろ
そもそもExcelの質問じゃないし 昔ならawkやsedでやる作業だろ いまはなに使うのかしらんけど
エクセル(またはCSV形式)の住所録を、googleマップ(マイマップ)に一括登録する方法ってありますか? 住所録データには名称、住所、備考欄があります。
【1 OSの種類 .】 Windows vista 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 特記 引き出し線 外国語の勉強にエクセルを使っていますが 文法上の解説をセルに矢印みたいな感じで 付けたいのですがその付け方がわかりませんので教えて下さい 以前、セルの端っこに引き出し線とフキダシみたいなのが付いて そのセルに備考を書けるのがあったような気がするのですが・・・?
>>269 セルを右クリック 「コメントの挿入」で
>>268 そういうネタで奴をおちょくるのは止めてやれ
回答位剤の書き込みはやめてくれませんか?
275 :
219 :2011/03/30(水) 01:08:12.10
∧∧ ⊂(・∀・)つ-、 早く答えろや!ゴラ!! /// /_/:::::/ |:::|/⊂ヽノ|:::| /」 / ̄ ̄旦 ̄ ̄ ̄/| /______/ | | | |-----------| |
Googleマップのkml君、本当にアホー知恵遅れに行ったんだなw しかし相変わらずOSやExcelのバージョンも、何を使って変換したのかも書かないんだな まあ簡単な質問だし、向こうではOSやExcelのバージョン書くのは「常識的なマナー」であって 「絶対的なルール」とはされていないから、そのうち誰かが答えてくれるだろう
277 :
名無しさん@そうだ選挙にいこう :2011/03/30(水) 08:35:16.55
ソースは?
【1 OSの種類 .】 WindowsVista(会社はXP) 【2 Excelのバージョン】 Excel2003 【3 VBAが使えるか .】 少しだけ(勉強始めたばかりです) 【4 VBAでの回答の可否】 可 【5 検索キーワード .】 FindNext Do Loop 全て検索 For など お願いします。 商品データの「商品名」でお客様リストを検索し、注文した方の氏名を 商品データと合わせて日付順シートに書き出したいのです。 商品データ、お客様リストは順次増えていきます。 「日付順シート」は書き出した後に、見やすいように同じワードが続くところは セル結合、罫線も引く予定ですが、まずは書き出しが失敗してしまいます。 最初に商品一つにつき、最初のお客様だけ書き出すのは成功しましたが、 2人目以降が書き出せず、いじっているうちに全く書き出せなくなってしまいました… コードのどこが変なのか教えて下さいませんでしょうか?
281 :
280 :2011/03/30(水) 11:19:25.06
「商品データシート」 A B C D E 1 商品名 商品コード メーカー 合計個数 日付 2 りんご 222 AAA 2 20 3 メロン 333 BBB 1 23 4 ぶどう 111 CCC 3 24 ◆合計個数は「お客様リスト」をCOUNTIFで出しています。 「お客様リスト」 A B C D E F G 1 番号 お客様名 住所 電話 注文品 注文品2 注文品3 2 1 山田 東京都 03 りんご ぶどう 3 2 鈴木 愛知県 052 ぶどう 4 3 田中 静岡県 042 りんご メロン ぶどう ◆番号はSUBTOTALで振っています。 「日付順シート」完成予想図 A B C D E 1 日付 商品名 商品コード 合計個数 お客様名 2 20 りんご 222 2 山田 3 20 りんご 222 2 田中 4 23 メロン 333 1 田中 5 24 ぶどう 111 3 田中 6 24 ぶどう 111 3 鈴木 7 24 ぶどう 111 3 山田
282 :
280 :2011/03/30(水) 11:21:32.90
Dim wsD As Worksheet Dim wsZ As Worksheet Dim wsT As Worksheet Dim lngYLine As Long Dim mykey As String '商品名 Dim g As Long Dim i As Long Dim FoundCell As Range Dim firstAddress As Range Set wsD = Worksheets("日付順シート") Set wsZ = Worksheets("商品データ") Set wsT = Worksheets("お客様リスト") i = 2 '検索結果の表示行は2行目からなので g = 2 '検索キーの商品名も2行目からなので mykey = wsZ.Cells(g, 1).Value '商品名 Set FoundCell = wsT.Columns("E:G").Find(What:=mykey, LookIn:=xlValues, lookat:=xlWhole) lngYLine = wsT.Columns("E:G").Find(What:=mykey, LookIn:=xlValues, lookat:=xlWhole).Row For g = 2 To Range("b65536").End(xlUp).Row '2行目からデータの最後まで If Not FoundCell Is Nothing Then firstAddress = FoundCell.Address Do wsD.Cells(cnt, 1).Value = wsZ.Cells(g, 3).Value wsD.Cells(cnt, 2).Value = wsZ.Cells(g, 1).Value wsD.Cells(cnt, 3).Value = wsZ.Cells(g, 2).Value wsD.Cells(cnt, 4).Value = wsZ.Cells(g, 9).Value wsD.Cells(cnt, 5).Value = wsT.Cells(lngYLine, 2).Value i = i + 1 Set FoundCell = wsT.Columns("E:G").FindNext(FoundCell) lngYLine = FoundCell.Row Loop While Not FoundCell Is Nothing And FoundCell.Address <> firstAddress End If Next g
まだ全部読み切ってないけど > wsD.Cells(cnt, 1).Value = wsZ.Cells(g, 3).Value とりあえず cnt ではなく i なのでは?
284 :
280 :2011/03/30(水) 11:48:09.87
>>283 すみません,失礼しました。
見て頂く方にわかりやすい変数に、と変えているうちに見落としていました。
改行が多いと言われてしまいましたので、次のレスに貼ります。
285 :
280 :2011/03/30(水) 11:48:57.93
Dim wsD As Worksheet Dim wsZ As Worksheet Dim wsT As Worksheet Dim lngYLine As Long Dim mykey As String '商品名 Dim g As Long Dim i As Long Dim FoundCell As Range Dim firstAddress As Range Set wsD = Worksheets("日付順シート") Set wsZ = Worksheets("商品データ") Set wsT = Worksheets("お客様リスト") i = 2 '検索結果の表示行は2行目からなので g = 2 '検索キーの商品名も2行目からなので mykey = wsZ.Cells(g, 1).Value '商品名 Set FoundCell = wsT.Columns("E:G").Find(What:=mykey, LookIn:=xlValues, lookat:=xlWhole) lngYLine = wsT.Columns("E:G").Find(What:=mykey, LookIn:=xlValues, lookat:=xlWhole).Row For g = 2 To Range("b65536").End(xlUp).Row '2行目からデータの最後まで If Not FoundCell Is Nothing Then firstAddress = FoundCell.Address Do wsD.Cells(i, 1).Value = wsZ.Cells(g, 3).Value wsD.Cells(i, 2).Value = wsZ.Cells(g, 1).Value wsD.Cells(i, 3).Value = wsZ.Cells(g, 2).Value wsD.Cells(i, 4).Value = wsZ.Cells(g, 9).Value wsD.Cells(i, 5).Value = wsT.Cells(lngYLine, 2).Value i = i + 1 Set FoundCell = wsT.Columns("E:G").FindNext(FoundCell) lngYLine = FoundCell.Row Loop While Not FoundCell Is Nothing And FoundCell.Address <> firstAddress End If Next g
>>280 とりあえずやっつけで冗長な処理が多いが、やりたいことはこんな感じか?
Private Sub Sample()
Dim wsD As Worksheet
Dim wsZ As Worksheet
Dim wsT As Worksheet
Dim mykey As String '商品名
Dim FoundCell As Range
Dim KeyRow As Range
Dim i As Long
Set wsD = Worksheets("日付順シート")
Set wsZ = Worksheets("商品データ")
Set wsT = Worksheets("お客様リスト")
i = 2 '検索結果の表示行は2行目からなので
For Each KeyRow In wsZ.Rows(2).Resize(wsZ.Cells(2, 1).End(xlDown).Row - 1)
mykey = KeyRow.Cells(1).Value '商品名
For Each FoundCell In wsT.Range("E2:G2").Resize(wsT.Cells(2, 1).End(xlDown).Row - 1)
If FoundCell.Value = mykey Then
wsD.Cells(i, 1).Value = KeyRow.Cells(5).Value
wsD.Cells(i, 2).Value = mykey
wsD.Cells(i, 3).Value = KeyRow.Cells(2).Value
wsD.Cells(i, 4).Value = KeyRow.Cells(4).Value
wsD.Cells(i, 5).Value = FoundCell.EntireRow.Cells(2).Value
i = i + 1
End If
Next FoundCell
Next KeyRow
End Sub
287 :
280 :2011/03/30(水) 12:20:02.78
>>286 できました!
何日も悩んでいたのが嘘のようです、本当にありがとうございました。
お手数お掛け致しました、とても助かりました。
ありがとうございます!
悪いこと言わないからデータベースソフトにそういうこと移行さしてやりなさい。
289 :
280 :2011/03/30(水) 12:31:16.71
>>288 アドバイスありがとうございます。
うちは小さなお店で、会社のPCにはExcelとWordくらいしかなく、
私自身も詳しくない上に、私以外のスタッフはExcelでPOPと売上グラフ作るくらいです。
件数もそれほど多くないため、データベース導入は敷居が高くて無理そうです。
Excelで頑張ってみます。
初心者ですみません。 セル範囲指定のRangeについてお聞きしたいのですが 普通にRange("A1:A5")としてRangeを使うのではなく Range("cells(1,1):cells(5,1)")のように 別のものと組み合わせて使うことは出来るのでしょうか? どうしてもエラーが出てしまって、うまく直せません
その場合""はいらないのでは
" 要らない : の替わりに ,
293 :
名無しさん@そうだ選挙にいこう :2011/03/30(水) 13:04:45.06
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel 2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 エクセル 2007 セル内 文字列 コピー ctrl+A エクセル2002を普段は利用していまして 1つのセル内の文字列をCtrl+Aですべて選択し Ctrl+C、Ctrl+Vでエディターやその他のソフトにコピーして使っていました (セル自体のコピーではありません)。 エクセル2007を使うと どうやらセル内でCtrl+Aを入力しても反応しないようですが 仕様が変わったのでしょうか? ご存じの方がいらっしゃいましたらよろしくお願いします。
>>290 Range(Cells(1, 1), Cells(5, 1))
>>293 2002はないから2003で試したけど、2007と同じ動作だった
セル内編集状態の時はCtrl+Aは使えない
>>293 Shift+HOME
もしくは
Ctrl+Shift+←
297 :
290 :2011/03/30(水) 13:16:25.05
ありがとうございます。一歩前進できました。 ですが、それをIFの中に組み込むとやっぱりうまくいかず、、 For a = 1 TO 5 If Range(Cells(a , 1), (Cells(a, 5))) = "A" Then このような構文なのですが、どう直せばいいのでしょうか
298 :
293 :2011/03/30(水) 13:19:06.15
>>295 >>296 ありがとうございます。
Shift+Ctrl+HomeやShift+Ctrl+Endで
代用できそうですね。
後ほど、エクセル2003でも確認してみたいと思います。
>>297 単一セルではなく複数セルの値は配列になる
正確にはVariant型2次元配列
この説明で理解できないなら、基礎を勉強してから出直せ
>297 やりたいことが A1からE5までの5行5列のセル範囲内で セルの値が ”A” の場合に以下の文を実行する ってことなら、 For a = 1 To 5 ' 縦位置 For b = 1 To 5 ' 横位置 If Cells(a,b).Value = "A" Then 文 End If Next b Next a となります
301 :
290 :2011/03/30(水) 16:26:44.05
ありがとうございます。 やりたいのは、5×5ではありません。いただいたコードを使ったら、文、のところでエラーが出るようなのですが、ここはミスでしょうか?
>>301 それから
If Range(Cells(a , 1), (Cells(a, 5))) = "A"
っていうのはどんな条件を想定してるの?
A1〜A5のどれかが"A"のとき?
複数のセルが"A"の時は同じ処理を繰り返すの?
>>297 だと
IF range(a1:e1)="A"
IF range(a2:e2)="A"
中略
IF range(a5:e5)="A"
みたいなことになるから5x5だね
やっぱり条件がよくわかんないや
305 :
300 :2011/03/30(水) 16:44:46.62
>290,301 このスレの >1-6 を読んでください。次にやりたいことを具体的に書いてください。 例えば・・・ 1 判定対象のセル範囲は A1:E5 でなければどこからどこまで? 2 判定は単独のセルの値なのか、同じ行のA列〜E列(列番号の1〜5)のセルが全て"A"の場合なのか という具合です。
306 :
290 :2011/03/30(水) 18:41:48.62
ありがとうございます、説明不十分ですみません
A列の1〜5でどれかがAのときです
あと
>>301 は自分ではなくいたずらです…
307 :
305 :2011/03/30(水) 18:58:55.34
>306 であれば、 For a = 1 To 5 ' 縦位置 If Cells(a,"A").Value = "A" Then 文 ←条件に合ったときやりたいこと End If Next a になります。 Cells(a,"A") は Cells(a,1) でもいいです。
308 :
290 :2011/03/30(水) 19:45:24.67
ありがとうございます。 縦はわかりましたが、横に広げたい時は どうすればよいでしょうか?
309 :
290 :2011/03/30(水) 20:22:47.83
>>308 これも自分ではないので大丈夫です
何とかなりそうです。ありがとうございました
310 :
290 :2011/03/30(水) 21:04:24.01
今、すべての真実を書きます 最初の質問以外はすべて、自分以外の人が書いています。せっかく回答をしてもらっていたのに、間違った方向にいってしまい、申し訳ありません しばらく自力でやってみます
311 :
名無しさん@そうだ選挙にいこう :2011/03/30(水) 22:36:04.28
セルに入力を行う度にRAND関数が再計算されますが、かなり多くの関数を使っているので再計算に1分弱ほど時間が掛かってしまいます。 再計算を行わないようにする方法は無いでしょうか?お願いします。
>311 ツール、オプション、自動再計算をオフ 計算結果が必要なときは[F9]キー
言い忘れましたがマック用エクセルです。 そんなオプションがないのですが…
数式リボンの右端
セルの書式設定で m:ss:0 として 「1:32:2」と入力したら 「32:02:0」と表示され、数式バーにも「1:32:02」となります。 ちゃんと表示されるにはどう入力したらいいですか?
>>316 なにがやりたいんだよ。どう表示して欲しいの?
318 :
316 :2011/03/31(木) 08:45:02.53
自己解決しました。サーセン
初心者です。A 列に最大4桁の数字が入っています。 この数字を 例えば 12とあれば、国語12点 1356とあれば、国語1365点 9とあれば、国語9点 となるように 数字の頭と尻尾に文字を入れたいのですが 教えてくれませんか?
>>319 セルの書式設定でユーザー定義を選んで
種類のところに「G/標準」のかわりに「"国語"0"点"」と入力する
322 :
名無しさん@そうだ選挙にいこう :2011/03/31(木) 13:18:36.41
質問です OSはウィンドウズXPを使ってます エクセル2003で作ったファイル(又は、表データ)が、いつの間にか、エクセル2010でしか開けないファイル(又は、表データ)になっています。 ファイルは、エクセル2010が入ったパソコンに移し替えたら開けますけど、エクセル2003しか入っていないパソコンでは開けません。 ワード2003のファイルも同様に、ワード2003しか入っていないパソコンでは開けません。 ファイルの頭には、エクセルのマークや、ワードのマークがついていたはずですが、今は、どちらのファイルも四角の青みがかった同じマークに変わっています。 どうしてこうなったのでしょうか? また、エクセル2003で開くにはどうしたらよいのでしょうか?
>>322 保存したファイル形式が違うんだろ。2010で開いて97-2003形式で保存しなおす。
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 カウント関数? 数字のデータが10.5や100.23等がずらっとあってそれらを ××以上××未満のデータの個数が何個 みたいに集計したいのですがどうやればできますでしょうか?
325 :
324 :2011/03/31(木) 15:44:19.96
すみません!わかりました!! ごめんなさい!
326 :
名無しさん@そうだ選挙にいこう :2011/03/31(木) 16:25:40.69
【1 OSの種類 .】 Windows xp 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 吹き出し サイズ変更 オートシェイプの吹き出しで、テキスト入力できる枠線のサイズを変更すると、吹き出し線が 移動してしまうのですが、こちらを固定する方法はありますか? また、枠線を移動する際に、吹き出し線の先端を固定して移動させる方法はありますか? よろしくお願いします。
327 :
名無しさん@そうだ選挙にいこう :2011/03/31(木) 19:51:40.17
あります。
>>326 吹き出しを右クリック→図形の書式設定→テキストボックス→自動調整の
□テキストに合わせて図形のサイズを調整する・・・チェックを外す。または
その下の、 □テキストを図形からはみ出して表示する・・・をチェックを付ける。
とかいじってみると幸せになれるとおもうよ。
それをやっても吹き出し線は移動しますね。
330 :
名無しさん@そうだ選挙にいこう :2011/03/31(木) 22:16:30.05
エクセルファンクラブで水上が顔真っ赤な件w
【1 OSの種類 .】 Windows xp 【2 Excelのバージョン 】 Excel2007だと 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 1 複数のオートシェイプを削除することはできますか? またセルとオートシェイプを同時に削除することはできますか? 2 セルを選択すると選択されたセルは薄い紫になりますが、この薄い紫を他の色に変更できますか?
332 :
名無しさん@そうだ選挙にいこう :2011/03/31(木) 23:59:57.02
1できます 2できません
【1 OSの種類 .】 Windows** 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】否 現在、上のセルの値を加算させて下へ計算しており、途中で小計を出したいのですが、 小計をはさんでしまうと以降のセルがその小計を参照し、加算されてしまいます。 このような場合、小計毎に新たに計算式を作るしかないのでしょうか? 小計のセルのみ飛ばして加算できる方法があれば是非教えてください。 イメージとしては、もし上のセルから1ずつ加算してゆく場合 1 2 3 小計6 4 5 6 このようになります。
>>333 で、今使っている計算式は?できるだけ詳しくお願いします。
(場合によってはその計算式から小計列の値を計算させない、または差し引く事を
織り交ぜた式を回答できるかもしれないので。)
>>333 文面からできる回答は、IF使えというところか。
だが俺の直感は、SUBTOTALが使えると言っている。
336 :
334 :2011/04/01(金) 01:01:08.96
小計”列”じゃなくて小計”行”だな。orz
337 :
名無しさん@そうだ選挙にいこう :2011/04/01(金) 07:05:35.15
上の回答は無視してOK。 ピボットを使え。それで解決する。
338 :
名無しさん@そうだ選挙にいこう :2011/04/01(金) 09:35:44.20
ありがとうございました。PIVOTを使うことで何とかしたいと存じます。
自演の薫り・・・
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 縦 並び コピー 反映 A1-A400まで400個の数字データを入力すると同時に B1-B400までA欄の数字を上下反転で出力されるようにしたいです B400に=A1、B399に=A2という作業になるのですが、なんとか一括でというか楽にできる方法はないでしょうか
>>340 B1に
=INDIRECT("A"&400-(ROW()-1))
でオートフィルは?
>>341 そのままではなぜかズレてたのですが400の部分を405にしたらできました
ありがとうございます
【1 OSの種類 .】 WindowsXP** 【2 Excelのバージョン 】 Excel* 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】保護 移動 カーソル ロック 出来ない VBAのスレで質問したんですが、こちらだったみたいなので こちらで質問させてもらいます。 保護について教えて下さい。 シートを保護する時にロックをしてるセルを選択出来なくなる する奴あるじゃないですか? あれをやると時々エクセルの挙動がおかしくなります。 矢印キーが効かなくなったり アクティブセルの周りに普段なら出る黒い枠線が出なかったりとか。 スクロールロックが掛かってるとかそんなんじゃないです。 前から時々なってて、ぐぐって調べたんですが 特にこれと言って解決策が見つかりません。 これだという絶対的な発生条件も不明です。なったりならなかったりします。
344 :
280 :2011/04/01(金) 14:15:03.78
【1 OSの種類 .】 WindowsVista
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 ほんの少しだけ
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 If Then Not <> "" 入れ子 複数
先日教えて頂いたばかりですのに申し訳ありません。
>>286 さんの下さったお答えで解決していたのですが、
「商品データシート」
A B C D E F G
1 商品名 商品コード メーカー 合計個数 日付 日付2 日付3
2 りんご 222 AAA 2 20 23 28
3 メロン 333 BBB 1 23
4 ぶどう 111 CCC 3 24
上記のように新たに日付(発送日)の列が2つ加わってしまいまして、
こちらも抜き出して書き出したいです。
(例 「りんご」で検索したときは、日付が3つあるのでそれぞれ1データとして3行分書き込む)
自分で書き足したコードだと、表示が崩れて抽出出来てないものもあります。
コードのおかしいところ、または適した検索ワード等を教えて下さいませんか?
Dim wsD , Dim wsZ , wsT As Worksheet Dim mykey As String '商品名 Dim hiduke2 As String '日付2 Dim hiduke3 As String '日付3 Dim FoundCell , KeyRow As Range Dim i As Long Set wsD = Worksheets("日付順リスト") Set wsZ = Worksheets("商品データ") Set wsT = Worksheets("お客様リスト") i = 2 '検索結果の表示行は2行目からなので For Each KeyRow In wsZ.Rows(2).Resize(wsZ.Cells(2, 1).End(xlDown).Row - 1) mykey = KeyRow.Cells(1).Value '商品名 hiduke2 = KeyRow.Cells(6) '日付2 hiduke3 = KeyRow.Cells(7) '日付3 For Each FoundCell In wsT.Range("E2:G2").Resize(wsT.Cells(2, 1).End(xlDown).Row - 1) If FoundCell.Value = mykey Then wsD.Cells(i, 1).Value = KeyRow.Cells(5).Value wsD.Cells(i, 2).Value = mykey wsD.Cells(i, 3).Value = KeyRow.Cells(2).Value wsD.Cells(i, 4).Value = KeyRow.Cells(9).Value wsD.Cells(i, 5).Value = FoundCell.EntireRow.Cells(2).Value i = i + 1
If hiduke2 <> "" Then wsD.Cells(i + 1, 1).Value = KeyRow.Cells(6).Value wsD.Cells(i + 1, 2).Value = mykey wsD.Cells(i + 1, 3).Value = KeyRow.Cells(2).Value wsD.Cells(i + 1, 4).Value = KeyRow.Cells(9).Value wsD.Cells(i + 1, 5).Value = FoundCell.EntireRow.Cells(2).Value If hiduke3 <> "" Then '日付3が空白でないときは必ず日付2も入っているので wsD.Cells(i + 2, 1).Value = KeyRow.Cells(7).Value wsD.Cells(i + 2, 2).Value = mykey wsD.Cells(i + 2, 3).Value = KeyRow.Cells(2).Value wsD.Cells(i + 2, 4).Value = KeyRow.Cells(9).Value wsD.Cells(i + 2, 5).Value = FoundCell.EntireRow.Cells(2).Value End If End If End If Next FoundCell Next KeyRow 改行が多すぎると出ましたので、分けました。 どうぞよろしくお願いします。
Cells()の指定値が一個ずれてる
>>344 wsD.Cells(i + 1, 5).Value = FoundCell.EntireRow.Cells(2).Value
wsD.Cells(i + 2, 5).Value = FoundCell.EntireRow.Cells(2).Value
の後にも i = i + 1
wsD.Cells(i + 1, 1).Value
wsD.Cells(i + 2, 1).Value
これらの +1、+2を全て(5x2=10カ所)外す
350 :
280 :2011/04/01(金) 14:44:08.14
>>347 さん
>>349 さん
お二方ともアドバイスありがとうございました。
できました!
次の行に書き込むから、と+1してたのがダメだったのですね・・・
cell()の指定値のどこだろう、と試していたところでしたので、
349さんには指摘頂き、本当に助かりました。
ありがとうございました。
× A→C→D→B→D→E i →A i=i+1 (i=3) i+1 →C (i=3、i+1=4) i+2 →D (i=3、i+2=5) i →B i=i+1 (i=4) i+1 →D (i=4、i+1=5) i+2 →E (i=4、i+2=6) 〜〜〜〜〜〜〜〜〜〜〜〜〜 ○ A→B→C→D→E→F i →A i=i+1 (i=3) i →B i=i+1 (i=4) i →C i=i+1 (i=5) i →D i=i+1 (i=6) i →E i=i+1 (i=7) i →F i=i+1 (i=8)
352 :
280 :2011/04/01(金) 16:43:58.12
>>351 分かりやすいご説明ありがとうございます!
書類を作っていましたのでお礼が遅れてすみませんでした。
もっと自分で出来るように頑張ります。
353 :
名無しさん@そうだ選挙にいこう :2011/04/01(金) 22:40:09.26
こんばんわみなさん 質問です エクセル2000から2010を使いたいんですがメニューが変わりすぎて使いづらいです 2010を2000風にできないですかね?
こんばんわみなさん 質問です エクセル2000から2010を使いたいんですがメニューが変わりすぎて使いづらいです 2010を2000風にできないですかね?
355 :
名無しさん@そうだ選挙にいこう :2011/04/01(金) 23:27:20.44
こんばんわみなさん 質問です エクセル2000から2010を使いたいんですがメニューが変わりすぎて使いづらいです 2010を2000風にできないですかね?
売上一覧で A列に営業の名前が入っていて、 B列にはその営業のお客さんの名前が入っていて、 ひとりひとりの営業が今月何人お客さんがいるかをいっぺんに見たいので、 [Aにその営業の名前]かつ[Bの文字列の種類]の数を出す関数はありませんか?
ああ、いくつかあるよ。
それは、どの関数でしょうか? それにしても、質問の空気が読めない人が多い気がするのは、私だけ?
それにしても質問スレの空気が読めず、 Excelのバージョンも書かずに質問する人が多い気がするのは、私だけ?
関数探すだけならここに質問するよりヘルプ検索したほうが速いのに
363 :
複乳 :2011/04/02(土) 11:52:39.00
ふつうの関数じゃ無理だね 営業と客の同じ組み合わせが複数行あったら重複してカウントしちゃう
ありがとうございます。良心のある方がいるようで安心いたしました。 逆数とは何でしょうか?
>>365 その数字で1を割ったのが逆数
3の逆数は1/3
>>363 ありがとうございます。
できればlとoをどっちも両方一緒に見たいのですがどうすればいいですか?
368 :
複乳 :2011/04/02(土) 17:55:50.07
>>367 2.3種類なら右に似たような数式を作ればいい。もう作らない。
それ異常あるならピボットテーブルのほうが早い
ありがとうございます。 異常はありませんのでこのままやってみます。 また、ピボットテープは関数でしょうか?
>>369 ピボットテーブルでググれ。話はその後だ
種類数えるのにCOUNTIFの逆数なんてアホカよ。 データ数の2乗に比例して遅くなるものはクソだぞ。 並び替えて上と違うものの数を数えろよ。
どうか、回答者様同志で喧嘩をしないよう、よろしくお願いします。
373 :
名無しさん@そうだ選挙にいこう :2011/04/02(土) 23:42:36.83
お前が原因を作ってんだよ
374 :
複乳 :2011/04/03(日) 00:05:42.84
375 :
名無しさん@そうだ選挙にいこう :2011/04/03(日) 12:07:14.98
【1 OSの種類 .】 Windows7 64bit 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 vba excel 2010 違い 現在、Office2000をまだ使用中です。 VBAを仕事で使用したいと思い、これを機にOffice2010に変えようかと検討しています。 ざっくりとした意見でかまわないので、やめておけとかおすすめとか、2010の評判を教えてください。 ちなみに現在特に重要なVBAの資産もないですし、自宅では上記の環境、職場では WindowsXP/VISTA Office2003/98のいずれも使用可能です。(いずれかで作成したVBAが 使用できれば良いです。Win32のAPI等凝ったことはしない予定です。) Office2003のエクセルを使用した感じだと、関数を入力中にヘルプが表示されたり、 初心者には優しいのかなと思ったので、さらに使いやすくなってるのでしょうか・・・?
就活しています。 自宅のPCはExcel2002(OfficeXP)ですが、 中小企業さんではExcel2003が一般的でしょうか?
377 :
名無しさん@そうだ選挙にいこう :2011/04/03(日) 12:13:37.24
>>376 リース期間の関係もあって2003が多いと思います。
中小であれば、それより古いものも結構多い。
>>375 2007は評判が悪かったけど、2010は諦め感があるし、もう2003から移るべき時期には来ていると思う。
タイミング的には乗り換えても。
2010で便利な機能もあるし、相変わらず使い勝手の悪いイライラする面もあるけど。
>>376 中小企業が2003を使っている、って事はない。意外と乗り換えやすいのは中小企業。
ただ、これは会社に拠るからなあ。
未だにXPを使い、OFFICE2003を使っているのは大企業が多いと思う。
379 :
名無しさん@そうだ選挙にいこう :2011/04/03(日) 12:21:45.24
>>378 くさっても最新版ってとこでしょうか・・・
じゃあ今から買ってきます
いくらするんだろう・・・・・高いんだよなオフィス・・・。
ありがとうございました。
381 :
219 :2011/04/03(日) 12:36:29.30
>>224 テンプレ端折っても「ピボットテーブルで」と書いてるから
VBAが使えるか、VBAでの回答の可否は省略しても
意味が通じると思うんだよね。
煽り厨は、答えられるスキルがないなら引き篭もってろよ(はぁと♥
あーあ、やっちゃったね。これで回答貰える確率はグンと下がった。 しかしまだ希望はある…そう、複乳だ。 奴は実社会で他人から必要とされることがなく、頼られること、お礼を言われることに飢えてるから バカ質問者を助長し、スレの秩序を乱すことになるのもお構いなしで、解ることにはなんでも答えちゃう。 どんなバカ質問者でも、回答くれた人にまで悪態付くことは無く、大抵お礼を言ってくれるどころか 複乳だけがまともな回答者かのような物言いをしてくれることもあるので、複乳的には超ご満悦なわけだ。 ただ問題は、複乳はここの回答者としてはかなりレベルが低いということ。 まあレベルが低いとは言っても回答者としてなので、ちゃんとまともに答えられることも結構あるが 答えたくても答えられない事が多く、また答えても無駄が多かったり、一応出来てるように見えて 実は不適切だったりすることも多々。
複乳で済むならそれに越したことはない 最近怠けてるけどな
384 :
名無しさん@そうだ選挙にいこう :2011/04/03(日) 13:09:56.05
へんな名前の奴多いんだねここ
いや、多分先の震災で複乳は被災してたんだとおもう。 最近ようやく落ち着いたんじゃないかな。
でも複乳じゃ例のグーグルマイマップの件とかには答えられないだろうな アホー知恵遅れに逃げて5日になるけど、まだ回答付かず放置状態w 複乳よ、解るなら盛大に喜んで貰えるチャンスだぞw
387 :
複乳 :2011/04/03(日) 14:16:52.34
388 :
名無しさん@そうだ選挙にいこう :2011/04/03(日) 16:36:33.20
eXcel kattekitayo instal tyuu
Aのブックに写真付のデータを入力し Bのブックに入力したデータの一覧化というのは可能でしょうか? Aに原紙があり、データを入力すると新しいシートにデータを出力(原紙はそのまま) BのシートはAで作成したデータシート(n枚)を一覧かつハイパーインク付き Aのブック 入力用シート(原紙) 入力したデータシートA 入力したデータシートB ・ ・ ・ Bのブック Aの入力したデータを一覧 ハイパーリンクAをクリックするとAのデータシート BをクリックするとBのデータシート
391 :
219 :2011/04/03(日) 17:57:14.37
>>382 あのね、もう220-221で解決済みなのよw
複乳さんを小馬鹿にしてるけど、俺は彼を支持するね。
中には「そりゃないだろう」って回答もあるけど、質問者の大半は
とりあえず「動く」「集計できる」ってことで満足してるんじゃないかな?
それより、質問者のレベルを無視して回答してる人の方が
自己満足してると思う。
>>387 いつもありがとう。
大企業の求人倍率は0.47倍、中小なら4.35倍(だったかな?)
大手に拘らなければ、複乳さんならいくらでも仕事があると思う。
可哀想な子、、、
393 :
名無しさん@そうだ選挙にいこう :2011/04/03(日) 18:37:03.15
解決してるんなら同じ質問投げるなよ
394 :
複乳 :2011/04/03(日) 20:04:27.84
あら、終わってた問題に回答しちゃったのね。まぁいっか
>>391 ありがとう。今も中小企業で就活してるよ。昔大企業にいたけどほんとうにだるかったわ。一年いたけど支店従業員120人の名前最後まで覚えられなかったわ
コジキになる心配はしてないけど、さすがに就職活動はめんどくさいわー
あと公務員に近いと言ってできるだけ仕事が少ない協同組合を選んだら見事に会社ごとなくなったわ。因果応報としか言いようがないわ。まぁいいわ。
ちなみにとある薬品を処理する工場よ。特定しいなでね。
さすがに次は真面目にやるわ。ありがとうね。
自分かたりうざい
Excelの勉強も真面目にやった方がいいぞ
397 :
複乳 :2011/04/03(日) 22:47:32.43
>>395 失礼。私の話題が出てたもんで乗ってしまいました
398 :
複乳 :2011/04/03(日) 22:48:28.12
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002(officeXP) 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】様々 私は今、転職活動中です。現在はオフィスXP(エクセル2002)を使用しています。 vbaはCOMは使えませんが、コマンドプロンプトを通じてファイル操作する程度はできます。 転職のためには2007や2010を買って勉強したほうが良いでしょうか。
>>398 冗長なコードや数式を書くことが多々見受けられるので
まずはそういうところを直しましょう。
バージョン気にするのは、そのレベルを卒業してからで十分です。
いいえ
401 :
複乳 :2011/04/03(日) 23:22:51.57
403 :
複乳 :2011/04/04(月) 00:25:54.96
>>402 お気遣いありがとうございます
面接中・勤務中では猫をかぶりますので大丈夫です
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 左右を見比べながら入力作業をしたい モニターに2つのデータを出す方法を教えてください。 例えば右側はAデータ、左がBデータ または上下でもできたはずです。 わかりづらいかと思いますがよろしくお願い致します。
【2 Excelのバージョン 】 Excel2000 Webから、タブ区切りのcsvをダウンロードした時にタブ区切りを認識させたいのですが、 ggっても設定方法が分かりませんでした。 区切り無しの一行で読み込んでしまっているんので、やり方を教えて下さい ><
406 :
複乳 :2011/04/04(月) 09:51:09.86
嫌です〜
>>404 2つのブックを並べて表示するなら表示→整列
同じシートの中の離れた場所を表示するならウィンドウ枠の固定
そういう時は嫌じゃなくて分かりませんて言うんだぜ?
2000だとwebクエリまだ無かったんだっけな?
【1 OSの種類】 Windows7 【2 Excelのバージョン】 Excel2010 データの種類を表示する方法が知りたいです 企業名が無作為に重複しつつ存在しているとして(空欄はない) ある範囲に含まれている企業名の種類をすべて抽出したいのですが 良いやり方はありませんか?
>>411 企業名の他に何か数列や文字列などデータは入っていますか?
【1 OSの種類 .】 WindowsXP SP3 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 MOS試験 MOS試験を受けようと思っています。 現在、会社でも自宅でもExcel2003なので、2003を受けるつもいです。 ところが、本屋に行っても2007と2010の模擬試験集しかありません。 出題は同じと思えばいいでしょうか?
415 :
複乳 :2011/04/04(月) 19:33:26.34
全然違うよう
417 :
複乳 :2011/04/04(月) 20:21:54.29
418 :
複乳 :2011/04/04(月) 20:24:58.27
>>411 2003だとフィルタオプションで重複するレコードは無視する
2010は知らん
パソコン一般の初心者スレからこっちに誘導されたので同じ質問します。 今、excelで列6行3000位のデータを扱っています。 データは 1,2,3,4,5,6 7,8,9,10,11,12 というような順番になっているのですが、 これを 1 2 3 ↓ というように並べ変えたいと思っています。 行列を入れ替えようとすると、エクセルの列の上限(Excel2000なので256)に当たり 出来ません。 質問は何かこれを簡単にやる方法ってありませんでしょうか? (当方マクロの知識は一切ありません……) もしくはExcelっぽいソフトで列数の制限が広いヤツとかってないでしょうか?
計算の必要のない単なるデータなら、csvやtsvでいいんじゃね? 行数、列数ともにほぼ無限 あと、1,2,3を 1 2 3 にするのも、csvに出力してカンマを改行に置換すれば一発
421 :
419 :2011/04/04(月) 23:34:19.41
>>420 なるほど!
ありがとうございます
早速やってみます
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 コピペでなら 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 ふりがな VBA 関数 簡潔に言うと、B1セルの文字を、A1セルの漢字の「ルビ」として 振ることは可能かどうか教えていただきたいです。 現在名札を製作中です。LEFTやらFINDやらで名簿の氏名を苗字と名前に分け、 それにVBAの「SetPhonetic」をかまして、オートでルビを振るところまでは できました。しかし、入力時のデータが生かされるため、正しい名前の読みは 完全に出てきません。せっかくフリガナのデータがあるのだから、 それをルビに流用したいと考えております。 どうぞ、よろしくお願いいたします。
>>422 フリガナを自動できちんとつける方法はない
Range("A1").Characters.PhoneticCharacters = Range("B1")
みたいにすれば一応設定は出来るけど、これだと
名前の一文字目にすべてのフリガナが関連付けられてしまうため、
データの位置関係はこんなふうになってしまうので注意
ヤマダ タロウ
山 田 太郎
まあいっぺん試してみて
書式やフォントの大きさによってはフリガナがちゃんと乗ってるように見えることもあるから
>>419 もう見てないかな?
元のデータがAからF列に入っている場合、どこか空いてる列にこの式を入れれば一列になるよ
=INDEX($A:$F,INT((ROW()-1)/6)+1,MOD(ROW()-1,6)+1)
425 :
VBA厨 :2011/04/05(火) 08:53:20.90
>>422 イ ロ ハ ニ ホ イロ ハニホ イロハニ ホ ヘ
姓姓 名名名 姓 名名 .姓姓 名名
. イ ロ ハ ニ ホ
姓 姓 名 名 名
こんな感じでよければサンプルあげるよ
漢字書きの氏名、ふりがな共に、姓と名を全角スペースで区切っていること前提のコードなので
現状、区切りが無いなら区切りを入れ、半角スペース区切りならデータを置換で直すかコードの「姓と名の区切り文字」の""内を書き換え
下段の例のような場合は、コードの区切り文字は全角スペース2個にして、ふりがなの区切り文字も全角スペース2個にしてね
(「イロ ハニホ」とすれば良しで、「イ ロ ハ ニ ホ」のようにする必要は無い)
Private Sub Sample()
Const s = " " ' 姓と名の区切り文字
Dim n() As String, p() As String, r As Long
For r = 1 To 2 ' 1行目から2行目まで
With Cells(r, 1)
n = Split(.Value, s)
If UBound(n) <> 1 Then MsgBox "名前が不正です": Exit Sub
p = Split(.Offset(, 1).Value, s)
If UBound(p) <> 1 Then MsgBox "ふりがなが不正です": Exit Sub
.Phonetics.Alignment = xlPhoneticAlignDistributed
.Characters(1, Len(n(0))).PhoneticCharacters = p(0)
.Characters(Len(n(0)) + 2, Len(n(1))).PhoneticCharacters = p(1)
.Phonetics.Visible = True
End With
Next r
End Sub
426 :
複乳 :2011/04/05(火) 09:04:28.50
助けてください。もう自分が理解できません。 あー桃太郎!ぼつちやーん\(^o^)/
427 :
VBA厨 :2011/04/05(火) 09:13:14.96
おっと間違いがあった ×.Characters(Len(n(0)) + 2, Len(n(1))).PhoneticCharacters = p(1) ○.Characters(Len(n(0)) + Len(s) + 1, Len(n(1)) + 1).PhoneticCharacters = p(1)
VBA厨氏が居るときは、複乳は出てこなくていいよ。
Excelに直接入力した時でも、結局は 山←ヤマダ 田 太←タロウ 郎 になっちゃうんだよな。フォントサイズを変えると激しくずれるから、名札とか作るにはあんまり向いてない。 漢字とカナが対応できない名前は別として、理想はこうなんだけどね 山←ヤマ 田←ダ 太←タ 郎←ロウ
文章ルビなら 山←ヤマ 田←ダ 太←タ 郎←ロウ が理想かも知れないが、人名ルビは 山┐←ヤマダ 田┘ 太┐←タロウ 郎┘ が理想だろjk スペースで位置整えてる場合はフォントサイズ変更で激しくズレるけど 割付けで位置整えてる場合はフォントサイズ変更してもズレないし。 それに > 漢字とカナが対応できない名前は別として と言うが、自分のだけ作るならまだしも、不特定多数のを作る場合は 別として、じゃ済まないからな。
それは位置バランスが悪いのではなく
漢字とふりがなのサイズ比を故意に極端に悪くしてるだけやんw
故意にやったらいくらでもバランス悪く出来るよ。
http://ourfilehost.net/up/file1/img/up3204.png Aは、@を君がバランスが良いと言うところの単字ルビ(きちんと並べた)に
したものだが、サイズ比が極端に悪ければ結局バランス悪く見える。
しかしサイズ比さえ極端に悪くなければ、単字ルビではないCDEも
バランス悪くはならない。
バランスなんてのは、好みの問題もあるから絶対的な正解なんて無いんだろうが 画像検索でフリガナ付きの名札、名刺、表札などを見てみると、漢字1文字単位でフリガナ付けているものは殆ど無いね
昔は印刷屋にやってもらったものが、最近はなんでもパソコンで自作するようになって
バランスの悪い印刷物が増えたよね
とくにExcelで印刷された文書はバランスが悪くて読みにくいものが多い
ExcelはDTPソフトじゃないのに
>>433 世の中には黄金比というものがあってだな…
>>434 全然的を射てない話だなw
どうにも退けなくなっちゃって、詭弁や屁理屈で自分の正当性を確立しようと必死になってる感じ
これ以上頑張っても滑稽なだけなので、もう少し勉強してから出直した方がいいぞ
436 :
複乳 :2011/04/05(火) 19:37:11.61
437 :
414 :2011/04/05(火) 19:47:28.94
>>423 A1セルに山田 太郎、B1セルにヤマダ タロウと入れてやってみたけどウンともスンとも......
何がダメぽなの??
Sub test()
Range("A1").Characters.PhoneticCharacters = Range("B1")
End Sub
439 :
複乳 :2011/04/05(火) 21:16:56.77
440 :
422 :2011/04/06(水) 07:12:49.73
皆様どうもありがとうございます。
皆様のVBAをためさせていただきました。
>>423 さんのであっさり出来ることに驚き、
>>425 さんのものでは
目に見えるセルの指定がないのに何故できるのか驚いております。
しかも、メッセージボックスまで出る。VBAとは奥が深いのですね。
問題の「ズレ」ですが、漢字振り仮名共に全角にて苗字と名前を分け、
別々のセルに送った上でルビを振る、という名札なので均等配置にすれば
問題なさそうです。正直に申し上げると
1年1組
山
田
太
朗
のような「どこか」でよく見る名札を作っております。40人分ずらーっと。
その為、別シートの名前やらの一覧から、名札のシートに全角スペースで
苗字と名前を分けながら送りつつルビを振る、しかも上のセル構成、
という結構複雑な流れになっております。
後日また、シート付で質問させて頂いてもよろしいでしょうか。
どうぞ、よろしくお願いします。
441 :
複乳 :2011/04/06(水) 07:18:01.24
ワードでやればいいのに…
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 コピペでなら 【4 VBAでの回答の可否】 できれば関数で 【5 検索キーワード 】 Phonetic ふりがな VBA 連続ですがもう一つ質問をさせてください。 A1のフリガナに対し、苗字と名前に分けながらふりがなに変換する、 という作業をしたいのです。 苗字 =IF(A1="","",LEFT(A1,FIND(" ",A1)-1)) 名前 =IF(A1="","",MID(A1,FIND(" ",A1)+1,LEN(A1))) という感じですが、これに「phonetic」を先頭にかましたり、LEFTの前にかましても エラーが出てきてしまいふりがなにしてくれません。 何処で間違ってしまっているのでしょうか。 これもまた名札のような複雑なセル構成の所で活用したいので、 出来うる限り関数で処理したいのです。ご教授お願いいたします。
>>441 環境もスキルも意識も「10年遅れている」、という現場の事務作業軽減の為、
誰でもワンタッチで使えるものを作る必要があるのです。本当に申し訳ない。
われながらしつこいと思うので、「やってられないぜ!」という場合はどうぞ軽く流してください。
444 :
複乳 :2011/04/06(水) 07:35:08.36
445 :
293 :2011/04/06(水) 08:50:37.51
2003でも試してみたところ
>>295 さんが書いてくださったように
2003から仕様変更があったようです。
新しい仕様に慣れようと思います。
>>293 Ctrl+A押せばその仕事するマクロを記録しておけば良くない?
セル内編集状態では、マクロが動かないことを知らないのか?
448 :
名無しさん@そうだ選挙にいこう :2011/04/06(水) 16:15:54.03
2段階で考えろ ×9時台の合計・・・10時台の合計・・・ というようなグラフを作る ○9時台の合計・・・10時台の合計・・・ をシート上に出す それをグラフにする そうすりゃ至極簡単なことだ
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 集計 関数 セルの色 A1:A10にランダムに数字をあてはめ、入力された数字によって5段階にセルの色が白〜赤に変わるような条件付き書式を設定しています この結果をB1(白のセル=○個)からB5(赤のセル=○個)という風に集計出力したいのですが、いまいち検索結果では理解できませんでした 色で判定させる方が楽なのか、条件付き書式で判定させる方が楽なのか またどの様な関数を使えば良いのか、よろしくお願いします
関数というか数式では背景色条件の式は組めないよ 数値を基準に色分けしてるんだから、 例えば10以下を白にしてるなら、10以下の数を数えれば、白セルの個数になる
>>449 返事どうもありがとうございます
○9時台の合計・・・10時台の合計・・・ をシート上に出す
というのは、オートサムを手動でやる以外に方法はありますか
>>452 ピボットテーブルで「時」でグループ化しろよ。
グラフはピボットグラフ。
454 :
名無しさん@そうだ選挙にいこう :2011/04/06(水) 21:28:23.39
A1セルに あああいいいい とあって 「あああ」が赤色 「いいいい」が黒だった場合 置換で「いいいい」を「おおおお」にした場合 「あああうううう」が全て赤になってしまいます これを色を変えずに置換って可能でしょうか?
>>454 1セル内で2つ以上の書式ある場合の置き換えは、マクロで作らないとそうなっちゃう。
マクロならできるけどめんどくさい。
458 :
448 :2011/04/07(木) 09:55:18.18
>>453 返事遅くなってすいません
どうもありがとうございます。
ピボットテーブルって全然知りませんでしたがググッてやってみました
ただ、グループ化で日付の表記が
2011.04.05 09:02
なのが原因なのかわかりませんが、「選択対象をグループ化することはできません」とエラーが出ます
何かいい方法はないでしょうか
459 :
名無しさん@そうだ選挙にいこう :2011/04/07(木) 15:31:37.00
平成08年07月11日を平成8年7月11日という表記するいい方法はありますか?
シリアル値で入力してあるなら、普通に「ggge"年"m"月"d"日"」とすればいいだけじゃね? 文字列で入ってるなら「成0」「年0」「月0」を、それぞれ「成」「年」「月」に置換
461 :
名無しさん@そうだ選挙にいこう :2011/04/07(木) 19:08:29.43
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 すみませんが、どなたか教えて下さい。 例えば、EXCELのブックの中に、11個のシートがあるとします。 その内の1〜10番目のシートは全て同じ内容で、 同じ場所に数字が書かれています。 仮にその数字の場所を「D20」とします。 11番目のシートは、合計を表示する特別なシートです。 1〜10番目のシートのD20の場所を合計して、 11番目のシートの「B10」に表示させたいと思っています。 この時、11番目のシートのB10に 「=シート1!D20+シート2!D20+・・・・」というように、 1〜10番目のシートを全てプラスしていけば合計は表示されますが、 この方法だと、シートをさらに追加した時、毎回手入力で追加して書き込んでいかないといけません。 シートは日々どんどん追加してゆく予定なので、 できれば、追加しても自動的にD20の位置の数字を合計に加算したいと考えています。 合計を表示するシート11のD20の位置はブランクにしているので、 要は「全シートの同位置の数字を自動的に合計する方法」が知りたいのです。 このような対応はEXCELで可能でしょうか? どうかよろしくお願いいたします。
>>461 シートが
[1][2][3][4][5][6][7][8][9][10][集計]
と並んでるとしよう。で
[1][2][3][4][5][6][7][8][9][10][11][集計]
[1][2][3][4][5][6][7][8][9][10][11][12][集計]
と増えるとする
この場合、まずは
[1][2][3][4][5][6][7][8][9][10][ダミー][集計]
として
[1][2][3][4][5][6][7][8][9][10][11][ダミー][集計]
[1][2][3][4][5][6][7][8][9][10][11][12][ダミー][集計]
のようにシートを追加していく。
で、使用する式は
=SUM(1:ダミー!D20)
これで
[1]〜〜〜〜〜〜〜〜〜〜[ダミー]
までの全てのシートのD20の合計が出る
ダミーシートの名前は、数式と一致させればなんでもいいし
ダミーシートには何も入力しなくて良し。
普通はこうやるんだが、集計シートの対象セル(D20)が
ブランクというのが確実な条件なら、ダミーシート使わず
=SUM(1:集計!D20)
でも構わない。
>>461 串刺し計算
sheet11!B10 =SUM(Sheet1:Sheet10!D20)
464 :
名無しさん@そうだ選挙にいこう :2011/04/07(木) 19:43:31.71
>>462 >>463 お返事、ありがとうございます!
早速やってみましたら、うまくいきました!
本当に助かりました。感謝感激です!!
ちょうど昨日そんなエラーに遭遇したのよね。 年月日が入力されているセルをピボットテーブルでグループ化しようとしたら出来ないんだわ。 書式の問題かと思って揃えたんだけどうまく行かなかった。 人のエクセルの表で急ぎだったから何が原因なのか分からんまま別の方法をとった。 自分のエクセルでは当然グループ化出来た。
>>463 それだとシートの追加には対応出来んぞ
まあ上にちゃんとした回答あるからいいけど
468 :
463 :2011/04/08(金) 09:56:52.91
>>467 シートの追加に関しては
>>462 が説明していますが基本的な串刺し計算について
説明が曖昧だったので。
素直になろうぜ
僕は男が好きです
僕もです
ちなみにボクは女ですが
私、ヅラです
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】COUNTIF関数 ××以下の数字の個数を数える場合にたとえばCOUNTIF関数を用いて =COUNTIF($A$1:$A$99999,"<21.47") という風にセルに入れると21.47以下の数字の個数をカウントできますが この21.47という数字をセルを指定する事ってできないんでしょうか? いちいち手入力でやるのがめんどくさくてたまりません。 どなたかいい知恵がありましたらご教授下さい
475 :
複乳 :2011/04/08(金) 23:08:43.96
>>474 C1に21.47といれて
=COUNTIF($A$1:$A$99999,"<"&C1)
他にはCtrl+Hの置換で,「"<21.47"」を「,"<33.33"」でも数式を書き換えることができる
>>474 $A$1:$A$99999としてるということは、その他の数値以下も数えたいんだろ?
だったらCOUNTIFじゃなくFREQUENCY関数を使え。
C1:C100に数値がありD1:D101に答えを求めるなら、D1:D101を選択して
=FREQUENCY(A1:A100,C1:C100)としてCtrl + Shift + Enterでいける。
D101はC100を超えた数値の数な。
超えることがなければD1:D100を選択して同じ数式を入力汁
COUNTIFはひとつの数値以下だけ数えるなら正解だが、そうじゃなければ不正解。
A列はA99999までだったな。 =FREQUENCY(A1:A99999,C1:C100) としてCtrl + Shift + Enterだな。
478 :
476 :2011/04/09(土) 07:32:25.52
頻度分布と勘違いしたわ。 上のFREQUENCYの答えの累計を求めればいい。 E1に=D1、E2以下は=E1+D2だな。 C列の値は昇準になってることが前提。
480 :
名無しさん@そうだ選挙にいこう :2011/04/09(土) 11:20:58.00
何か突然何も入力できなくなりました。 ファイル等は開けます、2時間前までは普通に作業していました。 シートの保護などはしてません、何だかツールバーとか全体的に透明 がかっていて使用できません。セル番は動かしたりできるのですが、 何も入力できません。 2003を使っています。アドバイスお願いします。
ぼくのせいじゃないからね。
>>480 Excelを一度終了して再実行
PCを再起動
Excel(Office)をアンインストール後に再インストール
OSを再インストール
ここまでやってダメならまた来なさい
飼いねこがキーを押していた、が真相
>480 それはエクセルだけの話ですか? 他のアプリは異常ありませんか? 2chへの書き込みは同じPCでやっているんですか?
485 :
名無しさん@そうだ選挙にいこう :2011/04/09(土) 15:36:00.57
Excelだけです、いまのとこ。
486 :
名無しさん@そうだ選挙にいこう :2011/04/09(土) 16:54:55.84
Excelで新規ブック作ってもそれならExcel壊れてんじゃねーの? 特定のブックだけだったらブック壊れてる
487 :
名無しさん@そうだ選挙にいこう :2011/04/09(土) 16:55:58.45
それかapplicationのプロパティでなんかあったな ユーザーの入力受け付けなくするやつ そのマクロ実行中に落ちたとかじゃない限り壊れはしないだろうけど
エクセルについて質問。誰か教えてください。 「A2が空白ならB2に空白を返し、A2に0以上の整数が入っていれば100からその数字を引いたものをB2に返す」 ってのがやりたくて、 =IF(AND(A2<>"",A2>0),100-A2,"") を入れたんだけど、 A2に0を入力すると空欄になっちゃうのね。 A2に0を入れた場合は、「100」って数字を出したいんだけど、どうしたらいいでしょう。
IFを2段構えにするとか
またテンプレ厨がパチギレそうな予感
>>488 A2に0以下の数字や文字がはいらなければ
=IF(A2="","",100-A2)
でよいかと。
494 :
複乳 :2011/04/09(土) 18:21:10.81
>>480 新規ファイルは大丈夫なら新規ファイルにコピーするとか
無理ならエクセル再インストールしたほうが早いだろうねぇ
>>488 0未満なら空白でいいんかな
=IF(A2>=0,100-A2,"")
こんな感じ
>>493 >>494 助かりました・・・。解決しました。
ありがとうございます。
調べようと思ったのですが、あまりに時間がなく、困っていたので。
ホント、ありがとうございます。
496 :
複乳 :2011/04/09(土) 20:19:10.65
良かったね
>>488 の条件を忠実に式にすりゃ=IF(ISNUMBER(A2),IF(A2>=0,IF(A2=INT(A2),100-A2,""),""),"")だなw
これほど厳しい条件じゃないと思うが。
499 :
複乳 :2011/04/09(土) 23:46:53.99
&0か+0かiferrorか何でもいいか
500 :
名無しさん@そうだ選挙にいこう :2011/04/09(土) 23:48:16.47
1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 板取り 二次元資材割付問題 アルゴリズム Excelで板取計算ができないかと考えています。 やりたいことは 1 母材の縦横サイズを入力 2 部材の縦横サイズと必要数を数種類入力 3 部材毎に縦横回転可否の条件入力 4 最適取り数とレイアウト図を表示 です。 ナップザック問題等でも 有名な、難解な問題ですが、 宜しくお願いします。
>>500 スレ違い
ここはExcelの使い方を聞くところで
数学的問題の解き方を聞くところじゃない
もう少し簡単な問題に例えると
「8の3乗というべき乗はどう入力したら良いですか?」
という質問には「=8^3 です」と答えるが、
「べき算とはなんですか?」はスレ違いってことだ
更に言えば当然VBAになるわけだが
>>3 ★VBAについて に書かれている通り
解法が確立されたところでこのスレの範疇では無い
ということで、解法を求めるところまでは学問板へ
それをプログラムコードにするところはプログラム技術板へどうぞ
502 :
複乳 :2011/04/10(日) 07:50:05.90
む?
504 :
422 :2011/04/10(日) 15:30:30.50
先日ふりがなの件で質問させていただいたものです。
いろいろ勉強し、考えて、名札を作るシートに、苗字と名前に
それぞれふりがなをふった一覧を作り、そこから名札の枠に
ペタペタはっていくというマクロでも組もうかと考えました。
http://www.dotup.org/uploda/www.dotup.org1516168.gif.html 一覧までは
>>425 VBA厨さんのVBAを参考(パクリ)にさせて頂き、
上記の画像の下の方に作ることが出来たのですが、
さて、ここから先、たぶんstep2を使ったForの二重がけやらが
必要になる貼り付けのところでもはや手も足も出ません。
どうかお力添えをよろしくお願いいたします。
Sub ふりがな()
Dim r As Long, i As Long
For r = 40 To 81
With Cells(r, 2)
.Phonetics.Alignment = xlPhoneticAlignDistributed
.Characters(1, Len(Cells(r, 2))).PhoneticCharacters = Cells(r, 3)
.Phonetics.Visible = True
End With
With Cells(r, 4)
.Phonetics.Alignment = xlPhoneticAlignDistributed
.Characters(1, Len(Cells(r, 4))).PhoneticCharacters = Cells(r, 5)
.Phonetics.Visible = True
End With
Next r
End Sub
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 入力規則 名前の定義 複数ヶ所 リスト 名前の定義を離れたセルでしてそれを入力規則でリストの範囲で =定義した名前 としたらエラーになりました。 離れたセルで名前を定義したものを入力規則のリストで使うにはどうしたらよいのですか?
>>488 は整数じゃないときどうしろとは書いてないから忠実な式は無理だな。
511 :
名無しさん@そうだ選挙にいこう :2011/04/10(日) 16:57:47.66
【1 OSの種類 .】 WindowsVista Home Premium SP2 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 勉強中 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 チェックボックス If フォーム Hide 条件 選択 ユーザーフォーム上でのチェックボックスのチェックの有無による 条件分岐についての質問です。 まず、UserForm1、UserForm2、UserForm3を作成しました。 UserForm1には1つのコマンドボタンと5つのチェックボックスを配置しており、 CommandButton1とCheckBox1〜5のオブジェクト名が付いています。 この時、分岐1としてCheckBox1をチェックしたときは CheckBox2〜5のチェックの有無にかかわらずUserForm2を表示する。 分岐2としてCheckBox1にチェックがないときかつ、CheckBox2〜5のいずれかにチェックがあるときはUserForm3を表示する。 分岐3としていずれのCheckBox(1〜5)にもチェックがないときはUserForm1を非表示 にするコマンドボタンを作成したいと考えています。 Ifステートメントを用いてコードを書いてみたのですが、 Private Sub CommandButton1_Click() If CheckBox1.Value = True Then 'CheckBox1が選択された時UserForm2を表示 UserForm2.Show Else UserForm3.Show End If End Sub これだと、いずれのCheckBox(1〜5)にもチェックがないときでもUserForm3が表示されてしまいます。 これに、いずれのCheckBoxにもチェックがないときUserForm1を閉じる(.Hideなど)コードは どのように記述すれば良いのでしょうか? よろしくお願い致します。
>>508 普通、複数条件で不一致時に返す値が同一なら、IF多段ではなくAND使うんだよ
そうすれば「〜,""),""),"")」みたいな無駄を減らせる
=IF(ISNUMBER(A2),IF(AND(A2>=0,A2=INT(A2)),100-A2,""),"")
これは条件数が増えるほど差は顕著で、例えば追加条件で
「100超の値の場合も空白を返す」というのを含めて4条件必要な場合だと
=IF(ISNUMBER(A2),IF(A2>=0,IF(A2<=100,IF(A2=INT(A2),100-A2,""),""),""),"")
=IF(ISNUMBER(A2),IF(AND(A2>=0,A2<=100,A2=INT(A2)),100-A2,""),"")
のようになるわけだ
ISNUMBERだけは別段にしなくちゃならないから2段は必要なので
2段と3段じゃあまり見た目ではあまり代わり映えしないけど、式の長さだけではなく、
論理演算(AND関数)に比べて、IFの入れ子は処理も重いから
普段から無意味にIFを多段にするのは避けるように覚えて置いた方がいいよ
>>512 ワークシート関数のANDやORってショートサーキットだっけ?
潔癖症なヤツに聞きたい 百万円単位で表にしたとき、Q1にはどう書いてる? 4月 1,450,000 5月 2,430,000 6月 3,400,000 1Q 7,280,000 4月 5月 6月 1Q 1 2 3 ( )
515 :
422 :2011/04/10(日) 18:36:27.21
516 :
名無しさん@そうだ選挙にいこう :2011/04/10(日) 18:42:53.50
>>515 登録名、もっと普通のにしたほうがいいよ
あと住所も消さないと
518 :
517 :2011/04/10(日) 18:52:45.93
あ”引っ掛けにひっかかっちまったぁ。 1Q≠Q1 orz
519 :
422 :2011/04/10(日) 19:05:32.17
>>515 登録名?住所?シートには元から住所は打っていないはずだけれど。
後学の為、具体的に教えていただけませんか。
前回保存者名は残ってしまっていますね。
やっぱこういうのあげるの怖いですわ。
520 :
名無しさん@そうだ選挙にいこう :2011/04/10(日) 19:06:58.01
>>519 いまはgoogleearthですぐ見れるな
>>513 違うよね。
おれもまさかこんなレベルのレスがあるとは思わんかったわ。
聞いて損した。
>>521 >>512 の脳内では=IF(ISNUMBER(A2),IF(ANDALSO(A2>=0,A2=INT(A2)),100-A2,""),"")なんだよ。w
>>522 なるふぉろ
ついでにORELSE関数も作ってほしいね。
524 :
514 :2011/04/10(日) 19:23:57.33
>>517 引っ掛けじゃねーよ!ヴォケ!
One Quarterだから1Qでいいんじゃね?
525 :
517 :2011/04/10(日) 19:31:32.68
526 :
517 :2011/04/10(日) 19:34:44.23
もしQ1=1Qであるとするならば月の連続で7月が1Qに入ることになります。
>>514 の1Qは合計って意味では
4月〜6月の合計は繰り上がって7百万になるけど、
下段の4月〜6月の合計は6になっていて、ずれる
6にしたい気持ちは分かるけど、普通は正規の合計の7にする
>>512 はVBAでもAndをよく使うの?
VBAが出来る人はAND関数がショートサーキットじゃないことくらい検証できるから、VBAはできないのかな?
529 :
名無しさん@そうだ選挙にいこう :2011/04/10(日) 21:13:11.06
・VBAエディタ上のCtrl+Yは行削除である。進むことは許されない(笑) このショートカットがウンコすぎてつらい
かなり逝っちゃってるなwww だから512みたいな電波飛ばしたんだなぁ 普通なんて言葉はお前は使っちゃいかん
解ってない奴大杉w
533 :
名無しさん@そうだ選挙にいこう :2011/04/10(日) 22:07:30.73
何を分かったつもりになってるんだろ? ほとんど常識的なことばっかの内容なのに。
「常識」ほど危険な言葉はない ほとんどの人は常識を他人と共有できていると思っているが、実際は独りよがりなことが多い そして、その内容が正しいか間違っているかは、また別の問題であるのに、 議論を始めるとこの2つの問題が入り乱れて収拾が付かなくなる だから頭の悪い人間と議論するのは嫌だ
ifとiifの違いも理解してなさそうなのが複数居るな
537 :
名無しさん@そうだ選挙にいこう :2011/04/11(月) 01:42:00.33
517=526 キチガイ?
>>536 お前512か?
何でIfとIIfの違いが分かってるのに、ANDがショートサーキットみたいな書き込みしたの?
何勘違いしてるの?
>>539 おめーも勘違いしてるだろ?
ISNUMBERにIFが必要って書いてるからショートサーキットじゃないのは分かってるらしいが、IFのネストが重いってのは勘違いだよなぁ。
すべてTRUEのときはほとんど変わらんが、前がFALSEならIFのネストが軽いわ。
0以上10以下で
=IF(ISNUMBER(A1),IF(AND(A1<=10,A1>=0,A1=INT(A1)),A1+1,""),"")
=IF(ISNUMBER(A1),IF(A1<=10,IF(A1>=0,IF(A1=INT(A1),A1+1,""),""),""),"")
これでA1<=10がFALSEになるデータなら後者が軽い。
100万行に=A1+1みたいなデータ入れて実際試してみればわかる。
可読性や作法的に同レベルの評価はANDにするのを否定はしないが、重さに関してはIFのネストがANDより重いということはない。
何勘違いしてるの?
上のすべてTRUEならほとんど変わらんってのは間違いだったわ。 実際試したらすべてTRUEでもANDが重い。 よって512は大嘘。
>>542 勘違い君を啓蒙しないと、あとあと嘘を垂れ流されても困るからねぇ。
遠吠えが続く・・・・・
546 :
名無しさん@そうだ選挙にいこう :2011/04/11(月) 08:39:08.46
バカって自分がバカって気づけないんだな。さすがバカだ。
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel 2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 A列とB列にそれぞれ数字が並んでおり、基本的にはA列の数字の合計を算出したいのですが、 A列a行目の数字がxよりも大きい場合は代わりにB列a行目の数字を加算する、 という式はどう書けばいいですか?
x=10で100行目までデータが入ってるとして =sumif(a1:a100,"=<10",a1:a100)+sumif(a1:a100,">10",b1:b100)とか それかC列を作業列にして合計出すか
>>546 だな
実際に試してみればわかるのにね
試しもしないで重い軽いを論じちゃいかんぜよ。
まぁ
>>512 が嘘なのは試さなくてもほとんどの人は分かると思うけどな。
俺もIFのネストが重いと思ってた ショートサーキットなんて言葉も知らなかったよ 勉強になった
>>548 "=<10"のとこの数字にセルを代入するにはどうすればいいですか?
"=<C1"とかだとうまくいきません。
>>551 =SUMIF(A1:A100,"=<"&C1,A1:A100)+SUMIF(A1:A100,">"&C1,B1:B100)
ややこしいんならD列に
=if(a1=<c1,a1,b1)
って入れてD列の合計出した方が速いかも
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 エクセル初心者ですが、学校の時間割を作る事になりました。 時間カウントで困ってますので、誰か助けて下さい。 科目の時間数を1日ごとにカウントしていきたいのですが できません。 科目 国語(30) 数学(30) 英語(10) 理科(30) 社会(20) ()内は時間数 月 火 水 木 金 1時間目 国語(1/30) 国語(2/30) 2時間目 数学(1/30) 国語(3/30) 3時間目 社会(1/20) 数学(2/30) 4時間目 英語(1/10) 上記みたいにカウントして行きたいのですが、 カウント関数で複数行を範囲指定ができません>< また。シート1枚で1日〜30日まで作りますので 簡単な方法があれば教えて下さい。
> カウント関数で複数行を範囲指定ができません 普通に出来るよ
>>554 エクセル初心者がそういうのを安請け合いしちゃいけません。
557 :
複乳 :2011/04/12(火) 13:10:41.71
558 :
554 :2011/04/12(火) 14:16:00.43
>>555 調べて、+を入れたらできるみたいな事がわかりました。
>>556 無理矢理させられています><
入ってすぐ押しつけられました。
本とインターネットとにらめっこしてます
>>557 わざわざありがとうございます。
上のを使って勉強したいと思います。
うpロダって使った事ないけど試して
うpしてみます。
559 :
554 :2011/04/12(火) 15:03:39.86
561 :
560 :2011/04/12(火) 15:08:12.44
>559 見てみました。日付は縦方向でもよかったのか
562 :
554 :2011/04/12(火) 15:10:34.07
>>560 ありがとうございます。
さっそく見てみます。
表はこれから動かしてはダメと言われました><;
563 :
554 :2011/04/12(火) 15:11:31.43
564 :
560 :2011/04/12(火) 15:13:29.93
>563 ゴメン、パスは excel です
565 :
554 :2011/04/12(火) 15:28:59.67
>>564 細かい時間割ありがとうございます。
>>559 で作った表を元に完成させると
下に行けばカウントの関数の量が多くなってきます><
またAクラス Bクラスが間に入っているので範囲指定が
いっぺんにできません;;
これを4月〜12月まで作るとすごい量になっちゃいます。
科目によっては5ヶ月掛けて行う物もあり、どう作って行くかわかりません><
今週で作れるか・・・・
566 :
560 :2011/04/12(火) 15:34:34.62
>565 必要とする要件を書いてくれたら手伝えるかも。 1 年間スケジュールが必要ですか? 2 科目数はいかほど? 3 1日あたりの時限数の最大値は? 4 A,B別々に作ったらダメ? 5 科目を指定したら、すぐ横に累積時限数が必要ですか? 週単位ではダメですか? 6 VBAつかったらダメ?
567 :
554 :2011/04/12(火) 16:28:52.07
>>566 1・年間スケジュールが必要です。
2・36科目あります。
3・1時間の最大数は60時間
4・A・B別々ではダメと言われました・・・私も一緒なら楽に作れると言ってるのですが・・・
5・科目を指定したら、横に時間数の累積が必要です。学生の出席と進度に影響があるので必要になります。
6・VBAつかってOKです。560さんが使うなら私も勉強します。
備考
専門学校なので、1科目で教師が最大11名居る事があります。(11名は同じ時間にはかぶらないです)
時間のコマは1コマで2時間なので本当は2/30→4/30→6/30と進んで行きます。
私の力不足でご迷惑をかけますがよろしくお願いします。
ちなみにVBAは本を買って勉強したら覚えられますか?
本当に初心者なので何を買えばいいかも分かりません><
568 :
560 :2011/04/12(火) 16:45:34.24
>567 を元に再度おたずねします 1 年間スケジュールを実現するのに1シートにひと月分割り当てて12シートでもOKですか?それとも>559をずーっと下まで延ばす方がいいですか? 2 36! 3 そういう意味ではなくて、1日の時間割でみた場合の1時限目から始まって昼食をはさみ6時限目まで、とかの意味です。 4 A,Bの2パターンを>559でアップされたように並べる件、了解(ちとややこしいか) 5 了解 6 VBAの勉強もしながらだと数ヶ月はかかります。 >559 の様式で決定なのであれば、VBAでやってみます。 >560(私)の方法でよければ計算式だけでなんとかできたけど。 で、もうひとつ質問ですが、>559のファイルで1日分を4行使い、AとBそれぞれ2行ずつとっているのはなぜですか? 何かデータが入るのですか?
569 :
560 :2011/04/12(火) 16:49:38.51
>568の3は「おバカな質問」でしたorz ファイルを見たら4時限で確定だった
570 :
554 :2011/04/12(火) 17:02:43.15
>>568 失礼いたしました。
1・12シートでお願いします。
2・2年生が一番多く、36科目あります。1年〜3年の合計すると79科目あります。
3・把握しました。 午前2時限と午後2時限の4時限になります。
4・
5・
6・数ヶ月!!!今週で作れと言われたのが数ヶ月以上はかかるんですね・・・退職届準備しなきゃw
>>559 の様式でお願いします。他の先生方から見たらあの様式がいいそうです。
>559のファイルで1日分を4行使い、AとBそれぞれ2行ずつとっているのはなぜですか?
上には科目名がはいり、下には単元名が入ります。
例 科目 論理学 単元名 言語表現技術T
科目によっては単元が20以上あるので入力が早いと思い上下に分けました。
571 :
554 :2011/04/12(火) 17:06:25.70
>>569 全然大丈夫です。
560さんに感謝しております。
この後の為に私もVBAを勉強しておきます。
>570 計算式でなんとかなりそうです。Q列〜AZ列まで使って、開始日〜当日までの科目別累積時間数を求める方法です。 >560でアップした表でいうと、10行目〜16行目に相当する部分です。 ただし、重くなるかも
573 :
554 :2011/04/12(火) 17:25:14.28
574 :
名無しさん@そうだ選挙にいこう :2011/04/12(火) 17:47:55.83
おまえらもう一緒に暮らせよ。なんだこれw
似たようなやりとりw は去年もありましたよ
パスは前と同じです
578 :
名無しさん@そうだ選挙にいこう :2011/04/12(火) 18:59:55.68
複乳が役立たず過ぎてワロタw
それ、笑うほどの事か? 複乳が役立たずなのはデフォでしょ いつも通り、仕様通り
エクセル2002なんだけど、インデントをやると全角2文字分が動きますo 全角1文字分を動かすには、どうすればいいのか教えてくだちいo
>>581 > インデントをやると全角2文字分が動きますo
そのそも、それが勘違い
動くのは全角2文字分ではなく、インデント1つ分
「全角2文字分」はフォント種とフォントサイズに依存するが、「インデント1つ分」は文字サイズに依存しない
例えば「MS Pゴシック」で6ptだと「1インデント≒3全角スペース」だが、16ptだと「1インデント≒1全角スペース」
というように「全角n文字分」とインデントは全く別概念なので「全角1文字分」動かしたければ、全角スペース入れるしか無い
まあ全角スペース入れる方法としては、手動でセルに直接入れる方法と、表示形式で自動的に入れる方法があるけどな
複乳はバカじゃないけどバカなんだよね なんて言うか、偏差値は人並みだけどIQ低いタイプって言うか 学校の勉強はそこそこ出来るが、仕事は出来ないタイプって言うか
585 :
複乳 :2011/04/12(火) 22:02:29.31
俺が答える前に、お前らが適切な回答をしてみろよ
excelの保護パスワードって最近のバージョンだと 大丈夫? むかしのはすぐ破られたらしいんだけど。
>>585 メール欄に気付かずマジレスしてきた奴を嘲笑うつもりだったのか?
>>586 昔はバグで違うパスワードでも突破されるという恐ろしい仕様だったな
あれを考えれば、現行でも重要なデータを保護して配布というのはやめたほうがいいだろう
>>586 わざと破られやすいように作られているのは、今も昔も変わらないけど、何か?
Excelの保護ってのは、不用意な改変、誤っての改変を防ぐ物であって
他者による改変そのものを強固に防止したり、数式やVBAコードを他人に見られないようにするものじゃない
例えるなら、部屋の外からでもコインなどで開けられる屋内個室用の鍵付きドアみたいなものさ
一般住宅のトイレなんかは、使用中に不意に開けられることが無いように一応内鍵が付いているが
冬場に暖房のないトイレで高齢者が意識を失ったり、子供が一人で入って鍵掛けたはいいが
開けられなくなったりって時の為に、特別な工具を使ったりドアを壊したりしなくても外から開けられるようになってる
Excelも同じで、パスワードを忘れたり、設定時に誤ったパスワード入力したりして解除出来なくなった時に
せっかく作ったブックやコードを丸ごと失うことを避けるために、わざと破ろうとすれば破れるレベルの保護に留めている
Excelで作る程度の物は、その程度の保護で十分と考えられており、もっと強固な保護が必要なら
まともなプログラム言語を使えって話になる
昔はハッシュを使ってたから誤判定があったし、ファイルが破損してると無条件で開けてしまうという トンデモ仕様だった 2007以降はちゃんとRSAで暗号化されているので突破は容易ではない 不可能ではないけど現時点では非現実的
突破方法確立されてるけどね。
592 :
554 :2011/04/13(水) 09:45:20.21
>>576 仕事の都合により、返事遅くなりました。
見てみました。すごい時間割ありがとうございます。
これを使って勉強し、改良版も作れるように頑張ります。
本当にありがとうございました。
詰まってわからなくなった時にまたお願いします。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 少しは 【4 VBAでの回答の可否】 可 VBAを少しずつ勉強しているのですが、次のような場合どうしたらいいのか分かりません。 aは横方向、bは縦方向の数値です A2~A21が空白の時は次のB2~B21に…という風にしたいのですが Exit For?を使うのでしょうか? どうしたらうまくいくのか分からないので教えてください For a = 1 To 10 If Range(cells(2,a),cells(21,a))=""then ※ Else For b = 2 To 21 If 〜 〜 Else 〜 End If End If Next b 〜 Next a
一列全部空白だったら何らかの処理をするってことですかね 一列空白かどうか判定する変数flagを用意して For a = 1 To 10 flag = 0 For b = 1 To 21 If Cells(b, a) <> "" Then flag = 1 Next b If flag = 0 Then '1列全部空白の時の処理 End If Next a for each使うとかもっといい方法あると思うけどよくわからないっす
ごめんなさい、逆です 一つでも空白があったらです 分かりにくいのでIf Range(cells(2,a),cells(21,a))="1"then A2~A21のどれか1マスに1があったらでお願いします
For Each cc In Range("A2:J21").Columns If WorksheetFunction.CountBlank(cc) > 0 Then MsgBox "空白あり" & cc.Column Else MsgBox "空白なし" End If Next WorksheetFunction.CountAで調べてもいいよ。 0ならすべて空白、列のセル数の20ならすべて埋まってる。
インデントが変になったよ。
>567,592 いくつか忘れてた。 >567の中にあった >時間のコマは1コマで2時間なので本当は2/30→4/30→6/30と進んで行きます の件については、各シートのE、H、K、N列の式の途中に *2 を付けたら数字が倍になります。 (一番最後に付けたらダメよ) Q〜AZ列の式には不要です。 累積時間数/全体時間数 の形式にしたいんであれば、Q〜AZ列の106行目より下の部分に 全体時間数を入れておいて、INDEXとMATCHを組み合わせて科目別の全体時間数を拾ってきて 文字列結合で組み合わせればいいと思う。 「4月」のシートのQ1〜AZ2セルの内容は、実際にはなくてもいいので、ここを科目別全体時間数 に利用してもいいと思いますが、5月以降のシートではこの部分(Q1〜AZ2セル)が重要なので 4月のシートのQ1〜AZ2セルの内容を同シートのQ106〜AZ107で参照し(参照式はQ106〜 AZ107の方に書く)、5月以降のシートもQ106〜AZ107に4月シートのQ106〜AZ107を 参照するようにしておくとわかりやすいと思います。その際は、4月シートだけ、E4〜N6の式から +INDEX($Q$1:$AZ$1,,MATCH(D4,$Q$3:$AZ$3,0)) ←E4の式の例です などの部分を抜いてください。
はいはい
Office2010の60日間お試し版をインストールしました。 2003風にしたくて、ググってみたら、「Office 2007 オールドスタイル メニュー アドイン ver.0.92」というのがあったので 試してみようと思ったらインストールできません。 お試し版だからでしょうか? OSはWindows7で、もともとOfficeが入ってないノートPCです。 よろしくお願いします。
601 :
複乳 :2011/04/14(木) 08:38:20.38
excel2007です A1に1111-1と入力すると A2に1111-2と表示されるようにするには、どうしたらいいですか?
604 :
554 :2011/04/14(木) 14:15:19.13
>>598 ありがとうございます。
さわる時間がなく今は家に持ち帰ってます。
今週でがんばって仕上げて行きたいです・・・
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否? よくわかりません 【5 検索キーワード 】 エクセル 数字変換 切り上げなど ほとんどエクセルを使ったことが無いので、 簡単なことかもしれませんが、よろしくお願いします。 数字が0から99までありまして、 時間ごとに出力された数字を一覧表にしました。 数字の誤差をわかりやすくするために5刻みの数字に変換したいのです。 3から7は5、8から12は10というように変換する数式はありますでしょうか? A B 1 数値A 数値B 2 13 15 3 48 50 4 92 90 5 22 20 6 77 75 上記のように変換出来ますでしょうか。 よろしくお願いします。
606 :
複乳 :2011/04/14(木) 15:39:51.09
=(round(a1*2,-1))/2とか
うわ、そんな関数あったんや
CEILINGだと2〜99はいいけど0〜1はエラーだよ =ROUND(A1/5,0)*5 もしくは =ROUND(A1*2,-1)/2 が正解 どうしてもCEILING使うなら例外処理をすること
610 :
605 :2011/04/14(木) 15:55:36.59
>>606 様
そのような関数があるんですね。
無事出来ました。
ありがとうございました。
>>607 様
返答ありがとうございました。
611 :
605 :2011/04/14(木) 15:59:41.38
>>609 様
エラーはしょうがないかと思って手で処理しようと思ってました。
=ROUND(A1/5,0)*5か
=ROUND(A1*2,-1)/2でやってみます。
ありがとうございました。
また複乳がポカやらかしたのかw
613 :
複乳 :2011/04/14(木) 16:53:21.23
あぁ、じゃあ B2=CEILING(A2+3,5)-5みたいな感じか
質問者ではなく回答者としてやっていくなら そのくらい指摘される前に気付けるようになろうね
>>609 >>614 エラーになるか?
整数だったら答えは同じじゃね?
少数もありなら
=FLOOR(A2+2.5,5)と=ROUND(A1/5,0)*5は同じ答えだと思う。
616 :
600 :2011/04/14(木) 21:00:00.19
>>601 おぉ、ありがdございmあすた。
海女損でOffice Home and Business 2010もポチってきますた。
でも、罫線とか、セルの塗り潰しとフォントの色の設定は2010のままなんですね・・・
罫線はともかく、色の並びは2003と同じにならないでしょうか?
617 :
複乳 :2011/04/14(木) 21:05:07.60
>>616 俺は2010も持ってないし、このソフトを使ったこともないよ
作者に要望でも出せば作ってくれるかも知れないよ
618 :
名無しさん@そうだ選挙にいこう :2011/04/14(木) 21:43:12.34
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 プルダウンリスト コンボボックス エクセルの入力規則-「リスト」でリスト化したものをA1に表示させています。 (たとえば、ばなな、みかん、りんご、などこれらをカンマで区切ります) 当然のことながら、A1を押すと下向き三角が出てきて ばなな みかん りんご と表示されて、好きなものを選択することが出来ます。 ここまでは問題なく分かるのですが・・・ そこで「ばなな」を選んだら「100」と数値が表示されるように しかもA1セルにその表示がされるようにできますでしょうか? (「ばなな」はプルダウンリストとして最初見るだけ、「ばなな」を選んだら 実際にA1セルに入るのは「100」という感じです) match関数やらindirect関数やら試しましたが、ダメでした・・・。
家計簿を作っています カテゴリの欄に"食品""日用品"等のジャンルが10個ほどあります その2つ右のセルに金額を書いています カテゴリ 購入店舗 金額 ーーーーーーーーーーーーーー |食品|○○店 | 600 |文具|△△店 | 300 |書籍|☆☆店 |1200 ・・・ ・・・ ・・・ そのカテゴリの合計値を別の場所に出したいのです 食品合計:\〜 文具合計:\〜 書籍合計:\〜 IFやVLOOKUPとSUMを併用したりしてもうまく出来ません どうすれば上手く表示できますか?
>>618 無理ぽ。
特に、vbaが駄目って言うんだったら無理
>>619 sumifで出来るよ。
でも、一番楽なのはピボットテーブル。
622 :
複乳 :2011/04/14(木) 22:24:32.39
>>618 B1セルにプルダウンリストを作って、A1セルに表示するしか
623 :
581 :2011/04/14(木) 23:35:52.09
>>582 なるほどo
ご丁寧にありがとうございますo
>>615 だがCEILING(-1,5)では2007と2010では動作が違うようだ。
2007だと#NUM!のエラーだが2010だと0になった。
複乳が反論しなかったということは2010は持ってないんだな。
> 2007と2010では動作が違うようだ。 そんなことは大抵の回答者は解ってる CEILING、FLOORで、数値と基準値の符号違いが2010からエラーにならなくなったのは、 ちゃんと「更新された統計関数」として告知されてるんだから おまえは今更そんな解かり切ったことをドヤ顔で言う前に 質問者の使ってるExcelのバージョンをちゃんと見ろ 何のためにわざわざExcelのバージョン書かせてるのか考えてみろ 2010を持っていようが、2007と2010の違いを知っていようが 質問者が2003使っていると言っている以上、2003(2007以前)でエラーになるなら それは完全に間違いって話になるので反論の余地はない おまえは複乳以下
すんまそん、ついでに先生教えてください。 CEILING.PRECISE関数ってどう使うのですか?
統計関数www
あごめん俺は先生じゃないからね。
630 :
名無しさん@そうだ選挙にいこう :2011/04/15(金) 02:02:03.19
>>626 どうもです。
先生にも是非聞きたかったです。
すんまそん、ミスりました。
上は
>>628 へです。
すまん628だが=CEILING(5,-5)とかで違うらしい。 =CEILING(-5,5)は同じだな。
レベルの低い奴が多すぎて困るな。
レベルの高い先生にききたいです。 「更新された統計関数」ってどこで見れるんですか?
レベルの高い先生はおやすみになられたようです。 またお待ちしてます。
>>634 その一つ下の表に載ってるね。
どうやら彼は表題を一つ読み飛ばしたようだ。
>>638 の方が余程「おかしいの」に見えるのは気のせいですか?
また暴れてるなwww
質問者のエクセルバージョンちゃんと見てませんでしたって素直に言えば終わる話なのになんで暴れるかねぇ
コテの複乳がコテの名誉のために反抗するならまだしも 名無しの奴なら旅の恥は掻き捨てならぬ 名無しの恥は掻き捨て的に考えて引っ込み また別件で素知らぬ顔して出てくればいいのに 名無しなら素知らぬ顔してれば前件の恥なんてつつかれないんだから
なんか勘違いしてるねぇ。 まぁいいや。 とにかく俺には仕様変更は参考になったよ。
646 :
名無しさん@そうだ選挙にいこう :2011/04/15(金) 09:52:07.63
バカはなんでも自分は最初から知ってたことにできるからな だからバカなんだよ
624が
僕は知らなかったんだけど、僕が使ってる2010からCEILINGの仕様が変わったみたいだね。
でも質問者さんは2003使ってるから複乳の最初の回答式ではエラーになる。
>>615 は間違いでした。
と素直に言ってれば何の問題も無かった。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 オートシェイプ マクロの登録 Selection オートシェイプにマクロの登録をした際に、そのマクロの中で クリックされたオートシェイプを取得するにはどうしたら良いのでしょうか? マクロの登録をしていないオートシェイプなら、クリックすると選択状態になり Selectionで取得できますが、マクロの登録をすると、クリックしてもマクロの実行の直前に 選択がセルに移ってしまいSelectionでオートシェイプを取得できません。 複数のオートシェイプにひとつのマクロを登録し、クリックされたオートシェイプに対して処理をしたいのですが。
なんかもう疲れたが2010とそれより前のExcelを使える人教えてくれ。 Excel2010でA1に-1と入力してB1に=CEILING(A1,5)としてから保存してExcel2007とかで開くとどうなるの? A1の値を-2にしたりB1の式を編集したりするとどうなる?
#NUM!エラーになる
>>649 おれんとこじゃ-2にしたってそのまま0だ。
式の編集もF2でエンターとかじゃそのまま0だ。
B1を消してから再度同じ式を入力すれば#NUM!になった。
>>650 ほんとに#NUMになるの?
自動再計算が無効だと#NUMにならないかも
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 否 質問です。VBA×数式のみで算出したいのですが |A B C ---|------------- 10 |2 1 1 20 |3 3 2 30 |4 4 3 求めたい値(Y軸の10or20or30) 条件 X軸の値と表の中の値が分かっている場合。 【例1】 参考値2と、X軸がBの時 Y軸の20を求めたい。 【例2】 参考値3.5と、X軸がAの時 Y軸の30を求めたい。 可能でしょうか?お願いいたします。
>>652 そうですか。
人によって違うとは困ったものですね。
とにかくmicrosoftは仕様変更はきちんとアナウンスすべきでしょうね。
マイナスの値で使う人はあまりいないと思うけど。
>>653 俺は自動再計算はオンだが、A1を変更しただけじゃ再計算しないみたいね。
100にしてもそのまま0だったよ。
>>654 =INDEX(A$2:A$4,MATCH(2,INDEX(B$2:D$4,0,MATCH("B",B$1:D$1,0))))
ってことか?
>>656 有益な情報dクス.
すまん
>>658 の式は駄目かもな。
Y軸がが1でX軸が"A"のとき#NUM!でよければいいんだが。
664 :
名無しさん@そうだ選挙にいこう :2011/04/15(金) 11:52:20.29
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2000 【3 VBAが使えるか .】 ほとんどいいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 COUNTIF , セル , 複数条件 , COUNTIF関数で、指定した範囲内で検索条件に一致したセルの個数を求めたいです。 例えば 1,2,3の使用してる携帯電話の使用機種が下記の列Bのとおりで、 検索条件は列C「一覧」にずらっと並べてます。 例では3機種だけですが、実際は例えば現在のドコモの現在の販売機種全部、といった感じです。 (例) 1 | A| B | C ---------------------------- 2 |あ|SH-01C |SH-01A 3 |い|W62S |SH-01B 4 |う|iPhone 3G|SH-01C ... COUNTIF関数で、=COUNTIF(B2:B4,"SH-01C") とすると、1 と結果が返ってくるのですが、 =COUNTIF(B2:B4,C2:C4) とすると 0 となってしまいます。 複数の検索条件をセルで指定したい場合、どのように指定すればいいでしょうか? また COUNTIF でなくほかの関数が適当であればあわせてご教示ください。
667 :
名無しさん@そうだ選挙にいこう :2011/04/15(金) 12:17:12.83
>>664 たとえば、セルC2("SH-01A")を使用している人の件数をセルD2に求めたければ
D2に次のように入力すれば出ると思いますよ。
=COUNTIF($B$2:$B$100,C2)
>>664 配列数式使う
=SUM(COUNTIF(B2:B4,C2:C4))
って入力したら、Ctrl+Shift+Enterで確定
式が { } で囲われればOK
669 :
664 :2011/04/15(金) 13:34:44.19
>>667 ,
>>668 ありがとうございます。
また、図がズレてしまって見づらく申し訳ございませんでした。
こちらの質問がまずかったんだと思います、
したかったことは
>>668 さんのとおりでできました。
Ctrl+Shift+Enter と 配列数式、
ともに知らなかったので
今から勉強して蓄えられるようにします。
お二方ともありがとうございました!
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 if A列に数字があり、B1に =IF(A1>=30,"","") と書いたらエラーになりました。 何で?
>>670 =lF(A1>=30,"","")
だったからとか。
672 :
654 :2011/04/15(金) 19:26:23.96
>>654 です。
>>657-658 様
レスありがとうございます。
説明べたで申し訳ないです。
表の値を調べるとき、XとY値から表の値を参照すると思うのですが、
【例1】X=B Y=20 なら 3
【例2】X=A Y=30 なら 4
今回知りたいのは
>>654 の表で
X=B 参考値3 なら Y=20
X=C 参考値3 なら Y=30
X=C 参考値1 なら Y=10
という時感じで、Yの値を数式で導き出したいのです。
※実際は参考値が2.5とか少数なので、完全一致じゃなく、直近上位で検索したい。
お手数おかけいたしますが、お分かりいただける方レスいただけると助かります。
お願いいたします。
673 :
670 :2011/04/15(金) 19:50:28.51
674 :
名無しさん@そうだ選挙にいこう :2011/04/15(金) 20:03:35.84
>>648 Application.Caller
でオートシェイプの名前がStringで返ってくるハズ
677 :
670 :2011/04/15(金) 21:29:14.01
>>674 Excel2010って書いてるだろ!よく読め!
>>675 Excel2010でやってみたかい?
615か
>>615 だけど迷惑かけた人ごめんね。
俺が謝罪の言葉を入れなかったばっかりに荒れてしまったらしい。
正直すまんかった。
これでこの件は終了な。
615だが
>>677 と混同されたのか?
変なのといっしょにされてもらっちゃ困るね。
まさかと思ってカマ掛けしてみたんだが、 この反応っぷりで疑惑から確信になっちゃった
683 :
複乳 :2011/04/15(金) 22:51:55.80
はぁ
>>674 にたいしてあんな言い草の
>>670 と一緒にされるとは...。
そんなものに2003も2010も関係あるわけないよ。
A1に数字が入ってたらエラーにはならない。
エラーになるのはA1がエラーのときだけだ。
だいたい
>>670 はエラーになるならエラー値くらい書け。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 プルダウンリスト エクセルの入力規則-「リスト」でリスト化したものをA1に表示させています。 たとえば、りんご、みかん、バナナなど。 A1でりんごを選択した場合、次のA2では使用済のりんご以外をリストで表示したいのです。 みかん、バナナ。 さらにA3ではA1,A2で選択されてないものを表示。 VBAなしでやりたいのですが。
>>672 |A B C
---|-------------
30 |4 4 3
20 |3 3 2
10 |2 1 1
と並べ直して、2とBで求める値が20なら
>>658 の式を少し変えるだけだな。
=INDEX(A$2:A$4,MATCH(2,INDEX(B$2:D$4,0,MATCH("B",B$1:D$1,0)),-1))
元の表のままでってのは出来ないことはないが、複雑になるから断る。
>>688 実際に2010でやってみた。
A1がエラー値以外は文字列でも数値でも""が返る。
エラーになるならお前のExceが壊れてるんだよ。
>>690 ふつうは
>>671 をコピペすると解るが、エラーが出るのだが。
なぜならIFではなくてlFだから。
692 :
691 :2011/04/16(土) 09:46:19.48
解らないかもしれないからカタカナで書くとね、 イフじゃなくてエルエフという記述がされているということ。
>>691 それをもったいぶらないで早く書けよ。
疲れるよまったく。
694 :
mogi :2011/04/16(土) 09:52:51.94
いいaha体験が出来たね!
695 :
複乳 :2011/04/16(土) 09:58:59.91
>>685 A列はC:Cの範囲でリストを作成
B列に値、りんご、みかん、ばななと入ってるとして
C1=IF(COUNTIF(A:A,B1)>=1,"",B1)
イイハナシダナァ
スレチな質問でなければ良いのですが・・・ 自分は今からVBAの入門書の一ページ目を開こうかという技能レベルで 今会社のPCのほとんどがWindowsXPsp3+Excel2002(たぶんOfficeXP)です 自宅ではWindows7の64bit版でして、これからエクセルを単体で購入したいのですが エクセルのどのバージョンを買うのがいいのでしょうか 第一目標は”会社のエクセル2002で動くごく簡単なVBAを覚える”事です 2002と2007・2010では数年の開きがあるのでVBAの仕様がガラリと変わっていないか心配です また背伸びして買った64bit版の自宅PCで古いエクセル2002(+VBA)が正常に動くのかも心配です 両方買うことも考えたのですが両方を共存させるのは難しい・面倒だと聞きます どのバージョンを買うのが無難でしょうか
700 :
複乳 :2011/04/16(土) 11:21:41.23
>>697 安く売ってるなら2002当たりでいいと思うけど、多分売ってない
ヤフオクなんかはコピー品が多いのでやめたほうがいいと思う
2010のvbaも基本的な機能ならほとんど変わってないので、2010でいいと思う
>>686 様
ありがとうございます。
無事解決です。
今回私が使う表も降順でしたので、
>>672 タイプで大丈夫でした。
とっても助かりました。
【1 OSの種類 .】 WindowsVista 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 勉強中 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 add phonetic フリガナ ユーザーフォーム excel VBA sheet1はお客様名簿、sheet2はお客様カードです。 ユーザーフォームのお客様カード作成ボタンを押すと、sheet2の表の中に名簿の情報を転記します。 sheet1のB列に名前(山田太郎)、C列にフリガナ(ヤマダタロウ)があります。 カードの名前欄に名前とフリガナを表示したくて以下のようにしてみましたが、 フリガナだけが表示されません。 どこを直したらいいのか教えて頂けませんか? n = target.Row With sheet2.Cells(6, 3) 'カードの名前欄 .Value = sheet1.Cells(n, 2).Value .Phonetics.Delete .Phonetics.Add 1, Len(.Value), sheet1.Cells(n, 3).Value End With
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 ある程度
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 セル 色 色なし
Excelの挙動が変です。
まず、以下のファイルを見てもらえますでしょうか。
http://2sen.dip.jp/cgi-bin/upgun/up1/source/up56980.bin ダウンロード後、ファイルの拡張子 binを xlsに変えてから実行してください。お手数ですがお願いします。
でそのないようなのですが、
セル46、A (★↓の下のセル)なんですが、何も入力してないとセルの色は無色なのに、
文字を何か入力すると何故か色が変わります。
そのセルの書式設定で、セルの色を「色なし」にして、無色に戻しても、セルの入力内容を削除→また文字を入力 とやると
やっぱり色がつきます。
これはいったいなぜなのでしょう???
windowsXP の Excel2003です。
705 :
複乳 :2011/04/16(土) 13:37:36.73
>704 ファイルは見てないけど、 セルの書式 ではなく、 条件付書式 は調べてみましたか?
707 :
706 :2011/04/16(土) 13:50:17.81
>704 自分のPCもxp(sp3)、Excel2003ですが、実際にダウンロードしてみたら・・・・・再現しました。 A44セルと同じく、紫色になりますね。条件付書式はありませんでした。 何なんだろう?
>>704-705 ウチも2002(SP3)だけどなるよ。
文字だとならないけど、数値だとなる。
文字を入れてから、数値を入れてもならない。
データを消去してから数値を入れると、やっぱりなる。
他のセルから書式をコピーするとならなくなる。
他のセルに書式をコピーしてもそのセルではならない。
その下のA47も今のデータを消去するとなる。
値貼り付けではならない。手入力するとなる。
ほんと、わからん。
思い出した。Excelのおせっかい機能(の誤作動?)と思われます。 どこか適当なところに5行以上の表(列数は任意)をつくり、 上から順に「表の下まで」適当に数字を入れてみてください。 罫線のなかった場所にまで罫線が自動的に引かれます。 元の表にセルの塗りつぶしがあれば、塗りつぶしもなされます。 本来なら、A45セルは塗りつぶしがないので途切れるはずですが、 データ的には連続しているので書式が引き継がれたものと思われます。
710 :
705 :2011/04/16(土) 14:14:24.89
皆様ありがとうございます。 自分固有の問題ではなかったのですね。謎です。 私の場合、問題のセルに別のセルの書式をコピー&ペーストしてもやっぱりなります。 あと、ALT E→A→F で問題のセルの全書式をリセットしてもやっぱりなります。 また、その問題のセルを含む表をまるごとコピーして、別の新しく作ったファイルに貼り付けても同様になります。 全く謎ですorz
711 :
複乳 :2011/04/16(土) 14:15:55.54
712 :
709 :2011/04/16(土) 14:18:27.60
追加 表じゃなくても再現します。罫線をひかず、セルの塗りつぶしだけでも再現します。 3行以上のデータ(数字だけじゃなく、文字でも)を上から連続して入力し、既入力の 1個のデータを飛ばして入力しても再現するようです。 2個以上既入力のデータがあると途切れるようです。
713 :
712 :2011/04/16(土) 14:22:05.57
原因発見 ツール>オプション>編集のタブ で、「データ範囲の形式および数式を拡張する(L)」のチェックをはずしてみてください
714 :
704 :2011/04/16(土) 14:23:38.42
>>709-712 どうもありがとうございます。
なるほど、言われてみれば確かに過去にそういう経験あったような気がします。
今回のもそういうことなのですね。
>>704 のファイルの場合、上の紫色の部分のセルの罫線を解除すると、
問題は起こらなくなるようです。
しかし、ほんとに余計なおせっかいな機能ですね・・・・・。
715 :
複乳 :2011/04/16(土) 14:33:09.40
あぁ、私のは最初からチェックが外れていたわ 便利なような、不便なような・・・
このお節介機能 と 作業グループ状態で保存したときに自動再計算機能がオフになる件 は、 テンプレートに追加しといた方がいいのかな?
こういう初心者が混乱する機能はデフォルトがオフであるべきだよな。
初心者って偉そうに書いちゃったけど、俺も知らなかったけどww
719 :
703 :2011/04/16(土) 23:28:46.82
>>705 レスありがとうございます
帰宅が遅れてお礼が遅れました、申し訳ないです
今日担当者に急かされて、フリガナの件は細い行を作って急遽対応することになりました…
大変失礼しました
>>685 を自分も考えてたんだけど、
>>695 だと
┌───
│りんご
│みかん
│バナナ
└───
からみかんを選ぶと
┌───
│りんご
│
│バナナ
└───
となり、更にりんごを選ぶと
┌───
│
│
│バナナ
└───
ってなるよね?
質問者はこれでいいのかな?
┌───
│りんご
│バナナ
└───
┌───
│バナナ
└───
ってしたかったんじゃないの?
>>720 配列数式廚が大喜びしそうだなw
へんなことあんま教えちゃいけないと思うなぁ。
ほんとはVBAでやるべきとこだからな。
722 :
685 :2011/04/17(日) 07:42:40.52
>>695 お礼遅くなりましてすいません。
ありがとうございました。
>>720 できれば空白ないほうが良いです。
可能なら教えて欲しいです。
>>722 B1=りんご、C1=みかん、D1=バナナ
の3項目の場合、
A1:A3に入力規則のリストで元の値=OFFSET(B1,0,0,1,4-ROW(A1))
B2:D3=INDEX($B1:$E1,1,SMALL($F1:$H1,COLUMN(A1)))
F1:H3=IF($A1=B1,4,COLUMN(A1))
で、必要に応じてB:H列を非表示にする。
下で選択したものは上のリストに反映されないので、
質問内容の通りA1、A2、A3と上から順に選択するように。
因みにF1:H3=ってのは、 F1に式を入れて、3行目(F3)までフィルコピー、更にF1:F3をH列(H1:H3)までフィルコピーでもいいし F1:H3を選択(F1アクティブ)して数式を入れ、Ctrl+Enterで確定しても良い。 Ctrl+Enterでの確定は範囲への一括入力で、Ctrl+Shift+Enterの配列数式確定とは違う。 あと、項目数が増える場合の注意は、式の中に2カ所有る「4」は項目数+1 =OFFSET(B1,0,0,1,【4】-ROW(A1)) =IF($A1=B1,【4】,COLUMN(A1)) 右の表の入力範囲は、3行3列と行列共に項目数分、 左の表は、1行目の項目入力(B1:D1)と2行目以降の数式(B2:D3)合わせて3行3列、 右の表と左の表の間は1列空けて、左の表で使ってるINDEXの第一引数はその空列含めて指定すること。 つまり項目数が5なら A1:A5に入力規則のリストで元の値=OFFSET(B1,0,0,1,6-ROW(A1)) B2:F5=INDEX($B1:$G1,1,SMALL($H1:$L1,COLUMN(A1))) H1:L5=IF($A1=B1,6,COLUMN(A1))
|\ /| |\\ //| : ,> `´ ̄`´ < ′ 訳がわからないよ . V V . i{ ● ● }i 八 、_,_, 八 . / 个 . _ _ . 个 ', _/ il ,' '. li ',__
勉強しようね
わざわざAAまで使って何したいのか訳がわからないよ。
なんで縦にしないんだろうね? いずれにしてもSMALL使った式は脳味噌がSMALLな人が使うってのが定説だな。 ROWも同じ。
行単位でまとめてあるだけだろjk リストが縦配置なら作業セルは横配置にして行単位にまとめ、 リストが横配置なら作業セルは縦配置にして列単位でまとめるのが自然。 DBと表計算ソフトを区別できないSMALLな脳味噌じゃ理解できないか? ○ リスト1 リスト1の作業セル─────→ リスト2 リスト2の作業セル─────→ リスト3 リスト3の作業セル─────→ ○ リスト1 リスト2 リスト3 リスト1の作業セル リスト2の作業セル リスト3の作業セル │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ↓ ↓ ↓ × リスト1 リスト1の作業セル リスト2の作業セル リスト3の作業セル リスト2 │ │ │ リスト3 │ │ │ │ │ │ │ │ │ │ │ │ ↓ ↓ ↓
無意味に配列数式を使っていたり、不適切な式での回答が有れば 「こうやるといいよ」と具体的な回答込みで指摘するのは良いが 配列数式やSMALL関数に限らず、何らかの機能を使うこと自体を 根拠や、よりすぐれた解法を示さずに厨呼ばわりしたり小馬鹿にする奴は、 知ったかぶって得意げになりたいだけの淋しい奴 そう、能力の低さから実社会で得意げになれる事柄が無い故に、 匿名掲示板で虚勢を張って悦に入ってる哀れな奴だ こういう奴は、ほんと始末に負えないね
y
e
p
勘違いしてる?
あれ?違うの? 口だけのやつと違っていい人だとおもったんだけど
勘違いしてる?
アナタ間違い僕キチガイそしてこいつは勘違い
は?上手い事言えたつもりでいるの?このどや顔のアホ↑
悔しかったの?
>>729 意味不明
とにかく横にしてる
>>723 は不自然。
そもそもA3で何もリストに出てこないようだが。
悔しかったの?
いや、君には勝てないから諦めてるよ。
>>743 配列数式も、SMALL関数も、ROW関数も使わず
空白も出来ない
>>685 への模範回答マダー?
×意味不明 ○ボクのオツムでは理解不能でちゅ
凡人にはハイレベルな
>>729 は理解できないんだよ。
ましてや
>>723 はハイレベルすぎてかなり難しい。
凡人は元データから不一致データを取り出して、そこを参照することをまず考えるからね。
だから頭のよすぎる人は凡人の考えは理解できないんだよ。 自分を誇りなさい。
諦めろ。 いくらあおっても出てこないから。 実は関数は知らないんだよ
実のところ、出てきてはいるけどね( ̄ー ̄)ニヤリッ
おうできる人がいるのか 俺に関数を教えてほしいな 俺はvbaしか知らない品
756 :
名無しさん@そうだ選挙にいこう :2011/04/18(月) 00:06:51.35
さて寝るとするか、遊びは終わりだ
弄ばれ疲れたか?
|\ /| |\\ //| : ,> `´ ̄`´ < ′ 釣れた釣れたw . V V . i{ へ へ }i 八 、_,_, 八 . / 个 . _ _ . 个 ', _/ il ,' '. li ',__
後釣り宣言は滑稽ですね。
スレと関係ないんだけどさ、俺「釣り」とか「釣り師」っていうのは、 釣り師 ↓ . /| ←竿 ○ / | . (Vヽ/ | <> | ゙'゙":"''"''':'';;':,':;.:.,.,__|_________ | 餌(疑似餌)→.§ >゚++< 〜 の組み合わせだと思ってたんだけど、 最近自称釣り師がダイレクトで自分の本音を攻撃されて「釣れた!」とか 言ってるの多いよね。 これは、どっちかというと、 ,〜〜〜〜〜〜 、 |\ ( 釣れたよ〜・・・) | \ `〜〜〜v〜〜〜´ し \ ゙'゙":"''"''':'';;':,':;.:.,., ヽ○ノ ~~~~~|~~~~~~~ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ト>゚++< ノ) かと思うんだけど、どうよ?
〜ここまでテンプレ〜
>>6 にある突出したデータの分離グラフを作る際に、別アプリを使うとありますが、
お薦めのアプリを教えてください。
お願いします。
スレ違い ソフトウェア板へどうぞ
765 :
@ :2011/04/18(月) 17:21:55.97
複数条件でのカウントについての質問です。 ※excel2007を使用しています。 A B 1 A あ 2 B ○ 3 A い 4 B ○ 5 A あ 6 B ○ 7 A あ 8 B ×
766 :
A :2011/04/18(月) 17:24:36.02
上記のようなデータがあるとして、 Aが「あ」で、且つBが「○」の場合のみ カウントするという事を、関数を使用して行えるでしょうか? 「SUMPRODUCT」や「COUNTIFS]を用いても上手くいきませんでした。 どなたかご教示をお願いします!
>>766 >Aが「あ」で、且つBが「○」の場合のみ
AにはAもしくはBしか入っていないのでその条件は成り立ちませんね。
>>767 すみません、言葉足らずでした。
情報としてAとBで一括り、つまり
「1,2」「3,4」「5,6」「7,8」という集まりなのです。
そこでAが「あ」でかつBが「○」になっているもの
のみをカウントしたいのですが、
やはりこんな条件では関数使えないでしょうか。
文章にしてみると無理だろって気が改めてしてきました・・・
何でそのようなデータの持ち方するのかねぇ。 このように直せ 話はそれからだ A B あ ○ い ○ あ ○ あ ×
エクセルの入力規則でリストを使いたいと思っていまして、 名前の定義で途中に空白のある定義を使いたいのですが、 リスト上ではその空白を無視したいというのはできますか? A列 1 いぬ 2 さる 3 きつね 4 5 6 ねこ といった具合にして これを定義したリストには いぬ さる きつね ねこ というふうにドロップダウンリストにでて欲しいのです。 よろしくお願いします。
基地外女がさんざんあおってたから多分答えはでねーなぁ
そうだよな 他者の回答を否定するにしても、根拠を示し、より優れた解法を提示するなら 質問者はもちろん、回答を否定された奴も勉強になるだろうが 難癖付けるだけで根拠も具体的な解法も示さないというか 示せないのに難癖付けるだけの奴が常駐してたら回答したくなくなるよね 例えそいつらが自分以下の存在だと分かり切っていても
>765 =SUMPRODUCT(($B$1:$B$100="あ")*($B$2:$B$101="○"))
775 :
名無しさん@そうだ選挙にいこう :2011/04/19(火) 08:06:10.06
できるだろ?
>>770 vbaならすぐですので、ご自身のコードをまず書きこんでください
そっか、今回はVBA否じゃないので、VBAで入力規則を設定しちゃえばいいだけなんだ
>777 VBA可とも書いてない(つーか、テンプレ使ってない)ので、後出しで「すいません、VBAわかりません」ってなるのがオチ
>>685 だからVBA否だろ?
あきらめてVBA可になったかも知らんが
>>778 そういうときのために
>>3 があるんじゃないか
相手は客じゃないんだから、必要情報も出さない横柄な質問者には
横柄な対応で突っぱねようぜ
そして、きちんとテンプレ読んで、まともな質問の仕方してくる奴にだけ
真摯に答えれば良い
>>779 >>685 は質問以降も名前欄にレス番入れて出てきているので
>>770 は別人
685は既にVBA無しで解決しているので諦めるも糞も無いと思うが。
してねーだろ?
>>770 >>685 見ちゃおれん。
解決はしてないよなぁ。
【質問不可】Excel総合相談所スレの雑談・議論スレ2の
>>866 になり変って答えれば、ROWは使うけど
品目 一覧
け あ 1 あ
お い 2 い
う 3 う
え 4 え
お 4 か
か 5 き
き 6 く
く 7 こ
け 7 #N/A
こ 8 #N/A
C2:C11 =IF(COUNTIF(A:A,B2),C1,C1+1)
D2:D11 =INDEX(B:B,MATCH(ROW(A1),C:C,0))
A2:A11の入力規則を「リスト」、元の値を=OFFSET(D$2,,,COUNTA(B:B)-COUNTA(A:A))
せいぜい数十行だと思うから、このくらいでも充分じゃない?
ほんとはD列はなくてもいいんだけどね。
いずれにしてもROW使った式は脳味噌がLOWな人が使うってのが定説だな。
>>785 なりすまして暴れるの楽しいかい?
暴れてばかりいると病院から迎えが来るぞw
ROWとSMALLの組み合わせが定説なんだよ。
配列数式でROWとSMALLを使ってる俺の立場はどうなるんだ?
なんで自分に対して、自分になり変わってとか言ってるの? 代わりではなく変わりだから、代役ではなく変装、つまり自演を暗示してるわけ?
なるほどw
ここはミリ秒の違いがわかる超人ばかりですね 遅いとか揮発とか、個人が作る小規模なシートで誤差程度の時間差にこだわってどうする
Excelのバージョンを問わず、csvのデータを開くと 勝手に小数点以下が削られてしまうのは仕様でしょうか。 例えば 1,2,3.0,4.1,5.9 なんてデータがあると、3.0が3として表示されるためそのまま 保存するとcsvそのものも3.0が3に切り捨てられるのです。 なんとかする方法はありませんか。Excelを使わない方法でも良いです。
すんげーローテクですけど自己解決しますた。 めんどいけどテキストエディタでカンマの前にアポストロフィを入れて保存し 数値ではなく文字列として開くしかないみたい。 行や列で編集した後、保存してからアポストロフィ削除したら 意図したデータになった。表計算が必要なデータじゃなくて助かった・・・ つーかこれバグだろ糞MS もう少しで死ぬところだったわマジで。
Excelは計算ソフト、計算が必要なデータを扱うソフト 計算をする上で「3」と「3.0」は同じなので、切り捨てでもなんでもないしバグでもない 大抵の電卓でも、「 3 . 0 + 3 . 0 = 」と入力すると、「+」の時点で表示が「3.0」から「3」になり 「=」で「6.0」ではなく「6」と表示されるが、それをもって勝手に切り捨てられただのバグだの言う奴は居ないだろ それと同じで、「計算」上ではこれは当たり前のこと 計算が必要ないデータを扱うなら計算ソフトではなくCSVエディタ使えば良いだけ まあExcelでもVBA使えば、計算データではなくテキストデータとしてCSVファイルを扱い 「3.0」を「3.0」のままにすることも出来るけどね
>>794 それなら桁数表示を弄れる必要はないだろ。
なんで数値で小数点以下を指定できるんだよ。
そして、その指定を全セルに指定していても
外部データ取り込み時に無視されるのは
やっぱりバグじゃないか。
> それなら桁数表示を弄れる必要はないだろ。 電卓でも少数桁表示を弄れる物はあります ExcelもVBA使えばCSVにおける整数の少数桁を保持できます ただ、どちらも基本は整数の少数桁を無視するというだけ > そして、その指定を全セルに指定していても > 外部データ取り込み時に無視 外部データ取り込み時には、外部データ取り込みのウィザードで指定した表示形式が適用されます 1/3:ファイル形式の選択、2/3:区切り文字の指定、3/3:表示形式の指定 のうち、「3/3:表示形式の指定」において文字列を指定すれば、「3.0」は「3.0」のままです テキストファイルウィザードの「3/3:表示形式の指定」において、文字列を指定したのに 「3.0」が「3」になるならバグですが
どーせ区切り文字指定したところで、次(3/3)に進まず完了させてたんだろ。
バグは
>>795 の頭だw
>>797 そんなわけねーだろヴァーカヴァーカ
>>796 で、3/3の画面でいかに文字列を指定しても無視され小数点以下が切り捨てられるかを
赤裸々に伝えようとして検証してたら、これ列単位で指定すんのかよ!!!
今まで文字列選んだだけで完了してたからA列しか文字列になってなかったわ。
100くらい列があるのに一つずつ「クリック&文字列指定」を繰り返さなきゃいけないわけ?
とんでもない豚仕様だな!!
結論:バグか否かで言えばバグではなかったが仕様が豚
また勝ってしまった…そろそろ敗北の味を知りたい。そんなわけで
「Excelで小数点の最後がゼロのデータも取り込めるよ編」の講義は終了。
起立!礼!放屁!(ブリッ
799 :
複乳 :2011/04/20(水) 23:24:00.25
VBAならなんとかなると思うけど、区切り位置の機能だけだとどうにもならんねー """も"="もダメ。最初にセルに文字列指定してもダメ 区切り位置の3/3のページはCtrl+Aも聞かないし、矢印キー+alt+Tだと連打ができない アポストロフィだとアポストロフィ付きの文字列になってしまう これでいいならいいんだけどね とりあえず、OOoだと3/3のページで全部の列を一気に文字列指定することができたので OOoで保存してから、エクセルで開けば完璧。 って遅いか
> バグか否かで言えばバグではなかった 負けたんだね。ご愁傷様w
801 :
複乳 :2011/04/21(木) 01:18:59.78
クソ仕様って奴だな。エクセルはもう少し丁寧に作ればいいソフトなのに・・・
802 :
名無しさん@そうだ選挙にいこう :2011/04/21(木) 01:43:16.10
数値だってセルで小数点以下桁数を表示すれば その通りにCSVで保存されるよね。 それじゃまずいのかな? 元データに3.0と5という値が同じ列あるCSVを数値として読み込んで 使用後に、元のように出力するソフトは世の中にないよね。
>>802 値を全て文字列として扱うCSVエディタなら、
同列でも3.0は3.0のまま、5は5のままだよ。
>>801 適材適所で表計算ソフトとCSVエディタを
使い分けられる人にとっては全く気にならない部分だけど
使い分けが出来ない人にとってはクソな仕様なんだろうね。
SHIFT押しながらとかCTRL押しながらとか
805 :
複乳 :2011/04/21(木) 09:37:19.20
そうですねー大半の人にはクソ仕様ソフトと思われてます
806 :
名無しさん@そうだ選挙にいこう :2011/04/21(木) 11:17:46.01
>>803 >値を全て文字列として扱うCSVエディタなら、
>同列でも3.0は3.0のまま、5は5のままだよ。
そりゃ当たり前だろ。
文字として読み込めばExcelでもメモ帳でも一緒だ。
その通りになる。
数値として読み込んでと書いてあるだろ。
> 数値として読み込んで ってのの真意は計算できるものってことだろ 文字列として扱い.0も保持しながら、それを数値として読んで計算できる そういうエディタがあるんだけど
808 :
名無しさん@そうだ選挙にいこう :2011/04/21(木) 11:42:14.70
>>807 あのね、テキストとして読み込んで
計算して、結果を別なセルに入れるよね。
それはExcelでもできるの。
そして、CSVで保存すれば、元のデータはそのまま。
というのは知らないのかな?
>>808 君じゃこの話に付いてくるのは無理みたいだな
>>808 欲嫁、だれもExcelでは出来ないなんて言ってないぞ。
どっちがやりやすいかってだけの話だ。
811 :
名無しさん@そうだ選挙にいこう :2011/04/21(木) 12:01:31.43
>>798 >100くらい列があるのに一つずつ「クリック&文字列指定」を繰り返さなきゃいけないわけ?
シフト選択すれば良いじゃん
812 :
名無しさん@そうだ選挙にいこう :2011/04/21(木) 12:04:20.69
813 :
名無しさん@そうだ選挙にいこう :2011/04/21(木) 12:11:23.50
もっとおもろい話題はないのかぁ
814 :
複乳 :2011/04/21(木) 13:02:55.77
>>811 うわあああああできた/(^o^)\
それで解決だた
815 :
名無しさん@そうだ選挙にいこう :2011/04/21(木) 13:49:20.25
ぱちぱち
816 :
名無しさん@そうだ選挙にいこう :2011/04/22(金) 00:41:45.12
excel2007です セルのスタイルについて質問です 2つのブックがあって片方からもう片方に何かコピペすると セルのスタイルのユーザー設定が勝手に増えていきます 今日はそれで書式が多すぎてなんとかって出て困りました 勝手にユーザー設定が増えないようにする方法がありますか お願いします
>>816 ペースト(貼り付け)時にそのまま貼り付けないで貼り付けのオプション使って貼り
付けたら改善するんじゃないかな。
Office XPのプリインストールPCを使ってます。 このPCに、Office Home and Business 2010を同居させるにはどうすればいいですか?
仮想OSの中にでも入れとけ
sumproductで出来るんじゃないかな?
初心者です スキャナーで画像取り込んでエクセルに貼り付けて印刷すると どうしても少しだけ小さく印刷されてしまいます 余白をなくしても小さいです ぐぐったところ画像を右クリック、切り取り⇒編集⇒形式を選択して貼り付け⇒拡張メタファイル でOKとのことでしたが 実際それをすると何倍にも拡大された画像が貼り付けられてしまいます なにか間違いでもあるのでしょうか? 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 エクセル 画像 印刷 小さく
>>823 質問の意味がよくわからん
印刷された画像のサイズは幅何センチで、希望よりどれだけ小さいの?
ちなみにA4の紙は幅21センチな
825 :
823 :2011/04/23(土) 22:55:28.57
すみません、スキャンした画像はある書類で元々はA4サイズでした。 もちろん印刷もA4でしたのですが全体的に少し縮小されたサイズで印刷されてしまいます。 だいたい一片5mmくらいでしょうか。 書類に書き込んで印刷したものが原本と同じサイズでないと困るので。
>>825 なんか知らんがエクセルは印刷結果が異常にずれる
どれだけ設定を同じにしても、バージョンが違うだけで印刷結果が変わったり
カメラ機能を使っただけで全体の縮小率が変わったりする。
本当はpdfがいいんだろうけど、無ければペイントでも使ったほうが早いんじゃないか
>>825 つまりコピー機みたいなことをしたいわけ?それはかなり難しいよ
まずExcelは使わない方がいい
他の画像処理ソフトを使ったとしても、プリンタの機種や設定によっては
思い通りに印刷できない場合がある
端が切れたり小さくなったり、とにかく印刷は難しい
どうしてもExcelを使わないとだめじゃなければ、あとはプリンタの問題になるので
プリンタスレで聞いた方がいい
機種ごとに方法が違ってくるので
828 :
名無しさん@そうだ選挙にいこう :2011/04/24(日) 01:29:14.72
初心者です excelで2色表示のチェックシートみたいなものを作りたいのですが、やり方がわかりません。 例えば 「善意の占有者は(占有物から生ずる果実)を取得する。善意の占有者が(本権の訴え)において・・」 上の( )内の文字を赤文字にして、赤文字だけ表示、非表示の切り替えができるシートを作りたいのですが。 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ
>>828 文章の途中を選択してから「フォントの色」をクリックすれば、選択された部分だけ色が変わる
切り替えたいなら2枚のシートを使う
830 :
名無しさん@そうだ選挙にいこう :2011/04/24(日) 02:53:23.76
>>829 やはり2枚組のシートにしないとだめですか。
特定の色だけ、表示非表示くらいできるかと思ったんですが。
どうもありがとうございました。
832 :
VBA厨 :2011/04/24(日) 04:14:22.85
>>828 VBA無しでセル内の一部の文字色を切り替えるのは無理だと思うけど
赤透明下敷き理論で背景色を変えて回答部を見えなくすることで
目的を達することは出来ると思うけど、どうよ?
切り替えにはフォームの「チェック ボックス」を使えば、1クリック切り替え可能
そのチェックボックスの「コントロールの書式設定 > コントロール」で
リンクするセルを「A1」にすれば、A1のTRUE/FALSEが切り替わるから
あとは問題文のセルに「数式=$A$1」で条件付き書式を掛ければ良い
ttp://up.mugitya.com/img/Lv.1_up2088.png
833 :
名無しさん@そうだ選挙にいこう :2011/04/24(日) 04:52:01.69
>>832 やりたかったのは、これです。
すばらしい。
どうもありがとうございます。
出来る奴は発想力が違うな。
あら、素敵 こういう回答が出来る人を尊敬するわ
【1 OSの種類 .】 Windows 7 Professional 64-bit 【2 Excelのバージョン 】 Excel 2003 翻訳の作業をExcelファイルでやるようにと言われ、マクロが設定されたファイルをもらいまいた。 マクロを実行すると、各行の原文(英文)ごとにダイアログボックスが開き、上の領域には原文が 表示され、下の領域に訳文(和文)を入力するようになっています。完了後、下にあるボタンを クリックして次の行に進む、という手順です。 ところが、下の領域に和文を入力しようとしていても、全角10文字くらいしか入力できず、あとは 入力できません(もちろん足りません)。 こういう現象を直すには何か方法はありますか?情報が足りなすぎるでしょうか? 訳文を受け入れる変数の型が問題なのでしょうか? VBAについては漠然としか分かりません。 よろしくお願いいたします。
>837
>全角10文字くらいしか入力できず
とは、枠の横方向の長さが10文字分しかない、のではなくて11文字以上入れると「入力誤り」みたいに拒否されるのか、
それとも先頭から10文字分で切られてからしかるべきセルに書き込まれる、ということでしょうか?
処理の内容から簡単なマクロと思われるので、マクロのソースを示して貰ったら、どこを変更したらいいかわかると思います。
そのためには、以下のことを調べてもらう必要があります。
当該Excelファイルを開いた状態で[Alt]キーを推しながら[F11]キーを押してください。ExcelVBAの編集画面が表示されますが、
ソースプログラムがすぐに見えるかどうかはわかりません。
http://www.officepro.jp/excelvba/ini/ の手順でもいいです。
あとは、どこにマクロが書いてあるかを調べることになりますが、まずはここまでのことができるかどうか、返事ください。
>>838 各行で10文字くらいまでは入るのですが、残りは入れてもダイアログボックス内には
反映されずに捨てられる、みたいな感じです。領域自体は広いのですが。
マクロは次のように短いものです。
Sub TranslateText()
Dim selRow As Long
selRow = ActiveCell.Row
If (selRow >= [cellStartRow] And selRow <= [cellFinalRow]) Then
[cellCurRow] = selRow
Sheet1.Rows([cellCurRow]).Select
End If
If (frmTranslate.Visible = False) Then
frmTranslate.Show
End If
End Sub
ダイアログボックス(フォーム)を定義している部分が見つかったのですが、 その中で次の部分が怪しくないでしょうか? 'Look at each line of text and make sure none of them have greater 'than the max chars per line For intIndex = LBound(linesOfText) To UBound(linesOfText) testTxt = StripCodesFromText(linesOfText(intIndex)) Rem res = MsgBox(testTxt, vbYesNo, "???") If Len(testTxt) > [cellMaxCharsPerLine] Then changeNotValid = True End If
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 勉強中
【4 VBAでの回答の可否】 はい
【5 検索キーワード 】 vba [ ]
横レスすいません
>>839 さんの4-5行目にある
[cellCurRow] の "[" と "]" はどういう意味をもつんでしょうか?
>>841 できました。
If Len(testTxt) > [cellMaxCharsPerLine] Then
changeNotValid = True
End If
この部分を削除したらOKでした。ありがとうございました。
記述性は上がっても、可読性は下がるよな やっぱRange使った方がいいよ 少なくとも自分で作って自分で使うだけではなく 他者にも使わせたり、ソース晒して他者に質問したりと 他者が関わってくる場合には
847 :
名無しさん@そうだ選挙にいこう :2011/04/24(日) 16:42:41.20
>>846 今のpcでvbaなんて余裕だから
メンテナンスしやすいのを優先すべきだろ
処理速度なんて気にする時代じゃない
可読性は下がる=メンテナンスしにくい
>>845 そんな記述方法があったんですね
どうもありがとうございます
>>847 このタイプの記述方法は、かなりマイナーだと思います。
vbaは業務でも数年間そこそこ触ってきましたが、このタイプは見たことありませんでした
一般的には、メンテナンス性、保全性と言うんでしょうか。低いと思います
本職の方はどうなんでしょう。よく使うんでしょうか。記述は当然早いと思いますが。
850 :
名無しさん@そうだ選挙にいこう :2011/04/24(日) 17:20:51.74
印刷するときだけ、文字の色を変えて印刷する方法はありますか?
851 :
名無しさん@そうだ選挙にいこう :2011/04/24(日) 17:25:04.05
>>850 文字色を黒以外に変更して、「白黒で印刷する」にチェックを入れれば
文字の色はディスプレイと違って印刷されるよ
852 :
複乳 :2011/04/24(日) 17:26:03.65
>>850 Ctrl+aで全体を選択して、フォントの色を変えるのが確実だと思う
vbaでもprintイベント辺りで何とかできるとおもうけど、詳細がわからないので何とも
853 :
名無しさん@そうだ選挙にいこう :2011/04/24(日) 20:26:12.81
【1 OSの種類 .】 Windows XP SP3 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 INDIRECT, ADERESS, MATCH Sheet1のD7:N7の範囲に日付(20xx/x/xx)、D8:N8の範囲に整数が順次入力されるとします。 ここで、D7:N7の範囲に任意の日付(例えばJ7に2011/5/1)が入力されたら、D8:J8の合計値をSheet2に表示したいのです。 そこで、次のような式を考えたのですが、#VALUEとなり上手く動作しません。 Sheet1上では上手く動作したのですが・・ =SUM(Sheet1!$D$8:INDIRECT(ADDRESS(8,MATCH(40664,Sheet1!$D$7:$N$7,0)+3))) 宜しくお願いします。
854 :
名無しさん@そうだ選挙にいこう :2011/04/24(日) 21:16:00.48
850です。 他からコピー貼付したものがありまして、上記のような質問になってしまいました。 黒字のものを赤で印刷したいです。印刷設定ではそれはできますか? ありましたら教えて下さい。
>>853 MATCH()かindirect()のところでエラーが起きてる
Sheet1
というシートは無いんじゃないか?
ツール ワークシート分析 数式の検証
を使えば原因がわかるかも。わからないならここにブックをアップロードするか、
自分で検証するかでかいけつできるかも
856 :
複乳 :2011/04/24(日) 21:32:20.76
>>854 どういうコピーかよく分からないが、
複数箇所なら
予め別のシートにコピーして置いて、全体を磔した後
フォント色を変える
その後コピーするとか
シート全体がわからないとなんとも言えない
>>854 VBAで出来るので自分でコード書いてください
858 :
複乳 :2011/04/24(日) 21:38:46.48
>>853 =SUM(INDIRECT("Sheet1!$D$8:"&ADDRESS(8,MATCH(40664,Sheet1!$D$7:$N$7,0)+3)))
でとりあえず日が存在すればエラーは出ないけど
=SUMIF(Sheet1!D7:H7,"<=2011/5/1",Sheet1!D8:F8)のようなことがやりたいのではなくて?
>>842 >>845 全然違うよ。
そのケースではcellCurRowという変数にsellRowを代入してるだけ。
そんな無駄な不細工なコードは書いてはいけない。
>>842 が書いたのか?
よく見たら横レスだったな。
当然
>>842 が書いたんじゃないよな。
>>860 を補足するとApplication.Evaluate略ね。
ヘルプ読めばいろいろ使えると書いてあるが、今回のは「定義された名前。コード記述時の言語で定義された名前を指定します。」ってことで
定義された変数ってことだ。
変数をそのまま使えばいいのに、回りくどくEvaluateなんて使ってはいけない。
863 :
818 :2011/04/24(日) 22:33:25.61
864 :
853 :2011/04/24(日) 22:34:03.87
>>855 ありがとうございます。
どうやらINDIRECTの指定がおかしかったようです。
>>859 ありがとうございます。まさにそれです。素晴らしい!
SUMIFを使えばシンプルに記述できるんですね。
ついでに、もう一つ質問させてもらいたいのですが、
日付が存在しない場合にエラーを出さなくする次の式をもう少しシンプルに記述できないでしょうか?
=IF(ISERROR(MATCH(40664,Sheet1!$D$7:Sheet1!$N$7,0)),"",SUMIF(Sheet1!D7:N7,"<=2011/5/1",Sheet1!D8:N8))
=if(countif(Sheet1!$D$7:Sheet1!$N$7,40664),SUMIF(Sheet1!D7:N7,"<=2011/5/1",Sheet1!D8:N8),"") こんな感じ。間違ってたらごめん
>>854 印刷設定ではできないと思われ
書式が黒字になっているセルを一括で赤字にするのが目的なら、
書式の置換でできるかと(やり方はググってくれ)
ボタン一発とかでやりたければ、置換→印刷→元の書式に戻す
の手順をマクロ記録するのが簡単そう
太字とか混じってると面倒かな
>>839 以降、無駄にEvaluate使ってるのが目立つなぁ。
変数や定数を[]で囲んでも動くには動くが、まったくの無駄。
たとえばこんなコード
Const x As Long = 5
Const y As Long = 10
Sub foot()
Dim i As Long
i = [A1].End(xlDown).Row
Debug.Print [x] <= [i] And [i] <= [y]
End Sub
最初の[A1]には意味はあるが、[x]とか[y]とか[i]は無意味。
Debug.Print x <= i And i <= yとすべきだ。
[A1]も使い捨てコード以外はあまり使わないけどな。
>>843 も動けばいいってもんじゃない。
cellMaxCharsPerLineを[]で囲うのは無駄。
【1 OSの種類 .】 Windows7 HP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 A B C D E F 1OO 2 2OO 3 3OO 2 4XX 4 5XX 5 という状態になっているのを A B C D E F 1OO 2 3 2 2XX 4 5 のように整理したいのですがA列の各項目の最初の行に数値を入力仕直す以外の方法があれば教えてください。て
870 :
869 :2011/04/25(月) 16:48:09.94
ずれてしまいました A B C D E F 1OO 2 3 2 2XX 4 5 のように整理したいのですがA列の各項目の最初の行に数値を入力仕直す以外の方法があれば教えてください。
872 :
複乳 :2011/04/25(月) 19:48:10.69
>>869 法則がよく分からない
B-F列には各列に1つずつ数値が入ってるってこと?
あと4と5が二行目なのもよく分からない
一行目は1-3、二行目は4-5、三行目は?
873 :
853 :2011/04/25(月) 21:10:32.06
>>866 なるほど、countifを使えば良かったんですね。
ありがとうございました。
Excelで家計簿をつけています。 どう計算しても毎月赤字になるのですが どうすれば黒字になるでしょうか
>>874 フォント色を赤→黒へ変更してください。
うp
877 :
複乳 :2011/04/25(月) 22:22:31.83
879 :
869 :2011/04/25(月) 23:48:29.09
>>872 申し訳ない。1行目が足りませんでした。
A列と1行目以外は数値が入ります。
A B C D E F
1 あ い う え お
2OO 2
3OO 3
4OO 2
5XX 4
6XX 5
とバラバラになっているのを
A B C D E F
1 あ い う えお
2OO 2 3 2
3XX 4 5
にしたいのです。
最終的には「あ」にはOOが2、「い」にはXXが4、「う」にはOOが3、「え」にはOOが2、「お」にはXXが5となるようにしたいです。
一応VBAはがんばれば何とか使えます。
880 :
複乳 :2011/04/26(火) 00:50:13.02
>>879 あぁ、何となくわかった
OOとXXにまとめるのね
で、種類はOOとXXだけ?他にも△△とかでてくる?
あと各列には1つずつ?
A B C D E F
1 あ い う え お
2OO 2
3OO 2 3
のB列のように二回でてきたりしない?
でてくる場合はどうすればいい?
>>880 「あ」がOOとXXに数値が入力されている場合はありますが
OOに2つの数値が入力されているということはありません。
例えとして各列は料理名、各行は食材という感じで捉えてもらった方が
いいかもしれません。
各料理ごとに必要な食材の量を入力した後に
各食材で並び替えたという状態です。
なので各行、各列は数十種類の項目があります。
>>879 VBA使わなくてもピボットで簡単。
「複数のワークシート範囲」で集計方法を「合計」にすればよい。
2007からは「複数のワークシート範囲」のメニューが出ない場合もあるが、その時は
「ピボットテーブル 複数のワークシート範囲 Excel2007」でググれ。
883 :
複乳 :2011/04/26(火) 09:03:18.66
>>883 普通に合計だと数十種類のフィールドを列エリアに引っ張ってくるの面倒じゃないか?
それに集計方法をまとめて合計にできるのかな?
俺が知らないだけか?
885 :
複乳 :2011/04/26(火) 09:48:05.95
>>884 お、簡単にできましたゴメンナサイ。
勉強して来ます
886 :
名無しさん@そうだ選挙にいこう :2011/04/26(火) 11:02:13.21
888 :
名無しさん@そうだ選挙にいこう :2011/04/26(火) 11:23:59.44
>>887 ありがとうございました。一行だけで条件範囲を抑えるという事ですね
そういうことだな。 空白行まで含めたら全部が対象になる。
890 :
869 :2011/04/26(火) 13:02:03.59
891 :
名無しさん@そうだ選挙にいこう :2011/04/26(火) 22:22:26.47
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 横並び 結合 統合 同じ値を含む行 など *シート1 ABC... 1◎%& 2○$# 3●?! *シート2 ABC... 1○+− 2●@〜 3◎@+ 本来は行、列共にかなり数がありますが、簡単に以上のような2つのシートがあります。 シート1・2共にA列に同じ値を含む行があります(例.シート1の行1 と シート2の行3 が"◎") この同じ値を含む行を、横に並べる方法はありませんでしょうか。 図で表すと *シート3 ABC DFG 1○+− ○$# 2●@〜 ●?! 3◎@+ ◎%& と一つにまとめたいのです。 どなたかご教授願います。
892 :
名無しさん@そうだ選挙にいこう :2011/04/26(火) 23:55:51.27
情報を小出しにすんな まったく状況がわからん
>>891 それぞれのシート上では、A列の値は重複しない?
(例えば、シート1でA列が◎なのは1行目だけ?他の行にもある?)
重複しないのなら、VLOOKUPとかINDEX・MATCHとかで簡単にできそうだけど
894 :
名無しさん@そうだ選挙にいこう :2011/04/27(水) 00:49:18.92
>>893 それぞれのシート内で重複することはないです。
教えていただいた関数を調べてみましたが、いまいち使い方が分からないです。
申し訳ないですが詳細におしえていただけないでしょうか。
>>894 なにがどう分からないかを質問しないと
いつまでたっても教えてくんから脱出できないよ。
896 :
複乳 :2011/04/27(水) 10:16:59.71
897 :
名無しさん@そうだ選挙にいこう :2011/04/27(水) 12:53:06.86
>>895 すみません。以後気をつけます。
>>896 ありがとうございます!
中の式を見て理解できました!こんな事も簡単に出来るんですね…。
本当にありがとうございました!
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 VBA shape コメント 区別 ワークシート上のフォームコントロールに登録されているマクロを一括して変更するために 下のようなマクロを作ったのですが、シート上にコメント欄があるとそこでエラーになり 処理が止まってしまいます。 これを回避する方法はないでしょうか?よろしくお願いします。 Sub test() Dim shp As Shape For Each shp In ActiveSheet.Shapes shp.OnAction = Replace(shp.OnAction, "macro1", "macro2") Next End Sub
899 :
898 :2011/04/27(水) 14:13:41.67
書き忘れました エラーになるのはコメントが表示になっている時だけみたいです
>>898 MsoAutoShapeTypeでシェイプの種類が調べられるので、コメントかどうか判定してからマクロを設定するとか
すでにマクロmacro1が設定されているかどうかを調べてから変更するとか
Shapesコレクションで取得できるオブジェクト群には、 マクロの登録出来る物と出来ないものがあるので例外処理で弾け まあこの例なら On Error Resume Next で無理矢理回しても結果は同じだが
902 :
複乳 :2011/04/27(水) 14:56:07.83
>>898 前セル選択してコメントを一括で非表示、終わったら表示ってマクロに組み込むとか
>>900 の方がよさそだけどね
>>900 の方がよさそうって
>>900 の1行目と、
>>901 の1〜2行目は言ってること同じだろ
>>900 の2行目の指摘は、
shp.OnAction = "macro2"
ではなく
shp.OnAction = Replace(shp.OnAction, "macro1", "macro2")
な時点で
> すでにマクロmacro1が設定されているかどうかを調べてから変更
は実装されてるので無意味な指摘
まあ厳密に言えば、macro1だけでなくmacro10がmacro20に書き変わっちゃうけど
macro10以上が無ければ何の問題もなく、macro10以上が無い条件下での実装だろうからな
そんなことも解らないのか?>複乳
OnErrorでエラー無視して強制的にReplaceでいいじゃん
905 :
複乳 :2011/04/27(水) 15:30:47.16
>>903 はい、わかりませんでした。
勉強になりました。
A B 1 あ 100 2 い 200 3 あ 150 4 あ 400 こんなかんじに成っている表がありまして、 そのなかで二番目の「あ」は150だ。 というを返す式ってありますか?
他人が書いたコードを誤読無く読んで正しく理解するには 知識だけではなく読解力も必要。 複乳はそこそこの知識(記憶力)はあるけど、 理解力、発想力、応用力などの重要な能力は低いからね。 今回勉強になったと言っても、それは知識として記憶しただけで 頭の回転の悪さは簡単に改善するものじゃないし。
>>906 COUNTIF、INDEX、MATCH
#value!エラーについて質問します エクセルのヘルプには#value!エラーが返っている原因に ・配列数式を入力または編集し、Enter キーが押された ・セル参照、数式、または関数が配列定数として入力されている と説明されていますが、どんな数式が入力されているのかわかりません 上記のエラーが返っているの例を具体的に数式で示してもらえるとありがたいです
>>910 =SUM(IF(A1:A3=1,B1:B3,0))
>>911 その数式は#value!エラーの「1 つの値だけを使う演算子または関数に、セル範囲が指定されている」
に該当するのではないのですか? if関数にセル範囲を指定しいるので・・・
913 :
複乳 :2011/04/27(水) 21:32:51.09
914 :
910 :2011/04/27(水) 22:44:16.53
>>913 この疑問に関してネットで調べているのですが
配列定数・配列数式とvalueエラーの関係を説明しているサイトがありません
複乳さんが指定されてるサイトも既に確認済みなのですが
配列定数・配列数式は説明されていてもvalueエラーとその関係は説明されていません
どなたか数式で具体的な説明をしてもらえないでしょうか
915 :
名無しさん@そうだ選挙にいこう :2011/04/27(水) 23:07:34.97
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 勉強中です… 【4 VBAでの回答の可否】 コピペなら(セルの指定範囲を変更するとか本当に初歩初歩なら…) 【5 検索キーワード 】 検索 別のシート 参照 現在、大量に入力したデータがあります。 人名・テストの点数・年齢の3項目です。(A〜Cの列に入力しています) これを別のシートで検索できるようにしたいのです。 例えば「山田」と入力すれば、山田を含むデータがずらーっと表示したいのです。 得点、例えば990点と入れればそれに該当する人がずらーっと。 オートフィルタを使って元々のデータで絞って取り出したい情報を取ることもできるのですが、 あくまでも「検索専用のシート」をつくって、そこに名前、点数、年齢のいずれかを入力すれば それに該当する行が全て表示される検索専用シートが作りたいのです。 グーグルでそういった感じの内容を検索するのですがどうも小難しいというか、シンプルでないというか…。 「人名入力→該当する行全て表示!」みたいな感じにしたいのです。 本当にまだまだエクセル初心者でそんなこともできないのかよ、と言われそうですが是非ともご教授お願いします
>>914 配列数式を入力または編集し、Enter キーが押された
{=SUM((A1:A3=B1:B3)*1)}を編集して=SUM((A1:A3=B1:B3)*1)に
917 :
910 :2011/04/27(水) 23:56:27.54
>>916 さん
ありがとうございます
確かにその数式は「・配列数式を入力または編集し、Enter キーが押された」に
当てはまると思います。
918 :
名無しさん@そうだ選挙にいこう :2011/04/28(木) 00:14:05.36
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 office2010 excel 対数グラフ グラフの横軸の書式設定で「対数目盛を表示する」の項目がでません 縦軸は出るんですが
919 :
910 :2011/04/28(木) 00:15:57.28
もうひとつの疑問である「・セル参照、数式、または関数が配列定数として入力されている」 こちらの方も教えてもらえると助かります。 エクセルのヘルプには配列定数にはセル参照・数式・関数は入力できないと説明されているのですが・・・ どういった数式の状態なんでしょうか?
>>918 自己解決しました
散布図になってなかった・・・orz
俺も
>>911 や
>>916 の式を配列数式じゃなく普通にEnterで確定したら#VALUE!になると思ったんだが、そうはならないんだよな。
a a
a b
c c
こんなデータで=SUM((A1:A3=B1:B3)*1)でEnterで確定だと1になってしまう。
Excel2007なんだが前からそうだっけ?
範囲の最初の値と比較してるみたいだが。
922 :
複乳 :2011/04/28(木) 06:38:54.15
>>914 そういうことか。分からん
={1,2}
だと1が返るのに
=A1:A3
でエラーになる理由は良く分からない
そういう仕様ってことでええんでないの
Cならメモリそのまんまだから説明できるけど、エクセルの内部仕様まではわかんね
>>921 2002だとvalueエラー
sumifs辺りの導入でsumの仕様も変わったのかな
923 :
921 :2011/04/28(木) 07:18:49.51
>>922 トン
そうかやっぱエラーだよな。
SUMの仕様じゃなく引数の範囲の扱い方が変わったのか?
2007でA1:B3に数値を入力して
=MAX(A1:A3*B1:B3)だと必ずA1*B1の値が返る。
=OR(A1:B1="")と横のセル範囲だと#VALUE!だが=OR(A1:A2="")と縦の範囲だとA1だけ評価してエラーにはならん。
これらは以前のようにエラーにしてくれてた方が親切だと思うなぁ。
SUMだけならSUMPRODUCTにすりゃいいんだが、他の関数使った配列数式が危ない。
924 :
921 :2011/04/28(木) 07:24:58.02
上のORの例でわかるように2007だと=A1:A3もエラーにはならん。 =A1:C1はエラーだ。
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 A列(行数不定)に1〜9までの数字がランダムに並んでいます。 これを100行ごとに集計して、その100行の中で一番多く使用された数字だけを B列に表示していきたいのです(つまりB列の行数はA列の約1/100になります)が どう書けばよいですか? この機会にVBAの書き方を覚えたいのでVBAで書いてくれると助かります。
一番多く使用された数字が複数ある場合は? ぶっちゃけ数式の方が楽なんだが、VBAで数式ぶちこむのもあり? それとも数式やワークシート関数使わずに純粋なVBAのみの回答がいいの?
>>927 じゃあ数式のみでお願いします。
複数ある場合に複数表示できるならそれでお願いします。
無理なら数字が一番小さい番号のみ表示という事で。
>>926 Sub a()
For i = 1 To Int(Range("A1").End(xlDown).Row / 100)
Cells(i, 3) = WorksheetFunction.Mode(Range("A" & (i - 1) * 100 + 1 & ":A" & i * 100))
Next
End Sub
>>928 複数対応
Sub a()
Dim x(10, 1) As Variant
For i = 1 To Int(Range("A1").End(xlDown).Row / 100)
For j = 1 To 9
x(j, 0) = j
Next
For j = (i - 1) * 100 + 1 To i * 100
x(Cells(j, 1), 0) = x(Cells(j, 1), 0) + 10
Next
For k = 1 To 8
For l = k + 1 To 9
If x(k, 0) < x(l, 0) Then
w = x(k, 0)
x(k, 0) = x(l, 0)
x(l, 0) = w
End If
Next
Next
Cells(i, 2) = x(1, 0) Mod 10
For k = 2 To 9
If Int(x(1, 0) / 10) = Int(x(k, 0) / 10) Then
Cells(i, 2) = x(k, 0) Mod 10 & "," & Cells(i, 2)
End If
Next
Next
End Sub
>>929 ,
>>930 どちらにも言えるけど、それだと250行まで有った場合、
1 1〜100行 と
2 101〜200行 だけで
3 201〜250行 を処理しなくなるぞ
Int(250 / 100) = 2だからな
そのまま直すと
For i = 1 To Int((Range("A1").End(xlDown).Row + 99) / 100)
For i = 1 To Int((Range("A1").End(xlDown).Row - 1) / 100) + 1
だが、そもそも
Int(数値 / 100)
ってのが無駄で
数値 \ 100
と同じ事なので
For i = 1 To (Range("A1").End(xlDown).Row + 99) \ 100
で良い
Modeの引数も
Range("A" & (i - 1) * 100 + 1 & ":A" & i * 100)
では、 &、&、&で無駄に文字連結が多いので
Cells((i - 1) * 100 + 1, 1).Resize(100)
で良いのでは?
>>930 の複数対応もこのくらいでいいんじゃね?
For i = 1 To (Range("A1").End(xlDown).Row + 99) \ 100
Set c = Cells(i * 100 - 99, 1).Resize(100)
j = WorksheetFunction.Mode(c)
k = WorksheetFunction.CountIf(c, j)
ret = ""
For l = 1 To 9
If WorksheetFunction.CountIf(c, l) = k Then ret = ret & "," & l
Next l
Cells(i, 2).Value = Mid(ret, 2)
Next i
WorksheetFunction無しの縛りでやるとしても、ソートまでは必要ないでしょ Dim x(9) As Long For i = 1 To (Range("A1").End(xlDown).Row + 99) \ 100 Erase x For j = i * 100 - 99 To i * 100 k = Cells(j, 1).Value x(k) = x(k) + 1 Next j k = 0 ret = "" For j = 1 To 9 If x(j) > k Then k = x(j) Next j For j = 1 To 9 If x(j) = k Then ret = ret & "," & j Next j Cells(i, 3).Value = Mid(ret, 2) Next i
>>925 あぁそうだった。すっかり忘れてた。
複乳が=A1:A2がエラーになったのは3行目以降に入力したからか?
おれはB1に入力したから共通部分があるんだが。
ところで=MAX(A1:A3*B1:B3)をC1に入力すると2002で本当にエラーになるの?
複乳すまんけどもう一回頼む。
この式は配列計算させたければ=SUMPRODUCT(MAX(A1:A3*B1:B3))もあるな。
複乳に調べてもらった式は違ってたか。 =SUM((A1:A3=B1:B3)*1) こうだったな。
937 :
複乳 :2011/04/28(木) 17:31:13.70
>>925 共通範囲参照かハハハ知ってるワロスワロスと思ったら共通部分参照、
これは本当に知らなかった。お前らの知識すごいな
>>935 すまないね。三行目以上ならエラーにならず、四行目以下ならエラーだ
=SUM((A1:A3=B1:B3)*1)
多分言うまでもないだろうけど。
938 :
複乳 :2011/04/28(木) 17:35:55.39
939 :
935 :2011/04/28(木) 19:18:28.47
940 :
複乳 :2011/04/28(木) 19:26:03.72
もしくは以前やったらあの時はたしかに、エラーになった&ならなかったはずなのに・・・ みたいな記憶がかすかにあったのかも
941 :
910 :2011/04/28(木) 22:17:08.46
回答、議論ありがとうございます 「・配列数式を入力または編集し、Enter キーが押された」 上記の数式の状態はある程度理解できました 「・セル参照、数式、または関数が配列定数として入力されている」 こちらの疑問、分かる方いますか?
>>941 =SUM({1,2,2+2})などと配列定数に数式を入れても#VALUE!エラーにならないんだよな。
「入力した数式は正しくありません」と最初から数式として入力できない。
俺には分らん。
【1 OSの種類 .】 Windows xp 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 ? 2003からアップデートして2007にしたのですが、ファイルを直接クリックして開こうとしてもエクセルが起動するだけで、いつまでたっても開いてくれません。 一度、他のウインドウ操作(エクスプローラとか、デスクトップに戻るとか)をすると、やっとファイルが開かれます。 何が悪くてこんな現象が起きるのでしょうか。
アップデートではなくアップグレードか?
アップグレードの場合、前バージョンでの使用期間があるとおかしな挙動することが結構ある
しかも使用期間中にユーザーがやらかしたことに起因する以上、確定的な対処法も無い
とりあえず、OS再インストールして2003インストールしたら、2003を弄る前に2007にアップグレードしてみろ
OSの再インストールが面倒とか言って、自分で出来ることもやろうとしないなら、さようなら
まあそもそもが
>>2 ・6でスレ違いだしな
>915 まだ誰も手がけてなかったようなので作ってみました Sheet1に元データ、Sheet2に検索値と検索結果とし、A列は名前、B列は点数、C列は年齢とします。 両シートとも1行目は見出しですが、Sheet1は2行目からデータ、Sheet2は2行に検索値を入力し、 3行目から条件に一致したデータを出力するものとします。検索値欄の隣にボタンを置いて、ボタンを クリックすると条件に合うデータを表示します。全ての検索値が空欄だと全データを表示します。 行数制限により、分割します。 Option Explicit Private Sub CommandButton1_Click() Dim sh_i As Excel.Worksheet, sh_o As Excel.Worksheet, kensaku(3) As Variant Dim tate_i As Long, tate_o As Long, flg As Boolean 続きます
945の続き(なんで自分だけ改行制限が厳しいんだろ) Set sh_i = Worksheets("Sheet1") Set sh_o = ActiveSheet kensaku(1) = sh_o.Range("A2").Value ' 検索値( kensaku(2) = sh_o.Range("B2").Value kensaku(3) = sh_o.Range("C2").Value tate_i = 2: tate_o = 3 ' 入出力行の初期値 Do If (kensaku(1) <> "") Then If (sh_i.Cells(tate_i, 1).Value Like ("*" & kensaku(1) & "*")) Then ' 部分一致 flg = True Else flg = False End If Else flg = True End If
946の続き If (kensaku(2) <> "") Then If flg And (sh_i.Cells(tate_i, 2).Value = kensaku(2)) Then Else flg = False End If End If If (kensaku(3) <> "") Then If flg And (sh_i.Cells(tate_i, 3).Value = kensaku(3)) Then Else flg = False End If End If If flg Then sh_o.Cells(tate_o, 1).Resize(1, 3).Value = sh_i.Cells(tate_i, 1).Resize(1, 3).Value ' 転記 tate_o = tate_o + 1 End If tate_i = tate_i + 1 Loop While sh_i.Cells(tate_i, 1).Value <> "" Set sh_i = Nothing: Set sh_o = Nothing End Sub 終わり
948 :
複乳 :2011/04/29(金) 12:09:21.45
>>943 ツール オプション 全般 他のアプリケーションを無視する
にチェックするか外す
それでもなるならワカンネ
> なんで自分だけ改行制限が厳しいんだろ 忍法帖レベル低いからじゃないの? 名前欄に「!ninja」っていれてみな
>949 ギコナビ使ってて、レベルがどうのこうの、という表示は出た。どうやったら解消するの?
一日一回書き込みをすればレベルは上がる がninjaの仕様コロコロ変わるからなぁ
>>950 ttp://info.2ch.net/wiki/index.php?%C7%A6%CB%A1%C4%A1%B4%AC%CA%AA 0→1は自動レベルアップで、1以降は、前回のレベルアップから23時間以上経ったのちに
書き込みを行うとレベルアップするので、普通にやってりゃ、1日1レベルずつ上がっていく
但し、連投したり荒らしたりすると、レベルを下げられたりレベル0に戻されたりするので注意
とりあえずLv2だと、本来の書き込み量制限の40%までしか書けない
低レベルにこういう制限掛けて、レベル下げられたり0に戻されたりが嫌なら連投や荒らしはするなって制度だ
でもさ、
>>915 への回答だったら、この制限内でも十二分に事足りると思うけど
Private Sub CommandButton1_Click()
Worksheets("Sheet1").Range("A1:C100").AdvancedFilter xlFilterCopy, Range("A1:C2"), Range("A3")
End Sub
これで終わり
完全一致だけではなく、70以上(>=70)みたいなのも指定できる
範囲を100行固定ではなく可変対応にしても、コードは1行のままでちょいと長くなるだけ
>>951 始まって間もない制度なので確かにコロコロ変わるけど、運営側から強制的に忍法帖を破棄される(Lv0に戻される)ってことは
今のところ一度も無いので、Lv上げて置くに越したことはないって点は間違いない
ついでに
>>945-947 の短縮版
Private Sub CommandButton1_Click()
Dim sh_i As Worksheet, sh_o As Worksheet, kensaku() As Variant
Dim tate_i As Long, tate_o As Long, flg As Boolean
Set sh_i = Worksheets("Sheet1")
Set sh_o = ActiveSheet
kensaku = sh_o.Range("A2:C2").Value ' 検索値(
tate_i = 2: tate_o = 3 ' 入出力行の初期値
Do Until sh_i.Cells(tate_i, 1).Value = ""
flg = True
If (kensaku(1, 1) <> "") Then flg = (sh_i.Cells(tate_i, 1).Value Like "*" & kensaku(1, 1) & "*")
If (kensaku(1, 2) <> "") Then flg = flg And (sh_i.Cells(tate_i, 2).Value = kensaku(1, 2))
If (kensaku(1, 3) <> "") Then flg = flg And (sh_i.Cells(tate_i, 3).Value = kensaku(1, 3))
If flg Then sh_o.Cells(tate_o, 1).Resize(, 3).Value = sh_i.Cells(tate_i, 1).Resize(, 3).Value ' 転記
tate_o = tate_o + Abs(flg)
tate_i = tate_i + 1
Loop
End Sub
>952 Worksheets("Sheet1").Range("A1:C100").AdvancedFilter xlFilterCopy, Range("A1:C2"), Range("A3") で、名前の部分一致(>915さんの要望)はどこで設定しているの?
>>954 Sheet1
名前 点数 年齢
山田 太郎 70 30
鈴木 花子 80 40
佐藤 三郎 90 50
Sheet2
名前 点数 年齢
山田
試してみたら?
文字列に対してはちゃんと部分一致検索になってるから
もっとも、前方部分一致なので、
> 例えば「山田」と入力すれば、山田を含むデータが
の例では問題ないけど、「太郎」指定で「山田 太郎」は出てこない
Range("A2").Value = "*" & Range("A2").Value
と、必要に応じてこれを戻す1行を加えれば、表明上は簡単に解決したかに見えるが、
これには落とし穴もあって、例えば
「泉 郁(いずみ かおる)」さんと
「郁 泉(いく いずみ)」さんが居て
「郁」姓を検索したい場合や、「泉」名を検索したい場合
"*"の強制追加だと意図しないものまで出てくるので、コードはそのままで(強制"*"付けせず)
「郁」の同姓検索→「郁」
「郁」の同名検索→「* 郁」
と使い分けた方が上手に検索できる
いちいち"* "の入力が面倒とか言うかも知れないが、質問者も例として挙げてる同姓検索なら、
標準で前方部分一致になってるから「姓*」とせずとも「姓」だけで問題ない
つまり「例えば「山田」と入力すれば、山田を〜」は、手動でもコードでも"*"付けせずに要望を満たしている
956 :
906 :2011/04/29(金) 14:54:01.13
教えてください。 A B 1 あ 100 2 い 200 3 あ 150 4 あ 400 という表を あ い 100 200 150 400 といったふうに変換することはできませんか?
957 :
名無しさん@そうだ選挙にいこう :2011/04/29(金) 15:07:19.35
Excel-DNA すげぇーーーー!
958 :
954 :2011/04/29(金) 15:16:00.23
959 :
906 :2011/04/29(金) 15:28:02.19
あ、出来ました。
質問者はExcel2003、Excel2003では前方部分一致
でもどのバージョンでも同じ動作になる書き方してた方が安全だと思うよ。 '山田太郎"の完全一致なら タイトル '=山田太郎 "山田"の前方一致なら タイトル '=山田* みたいな。 後者は タイトル 山田* でも同じだjけど、常に'=で始まる書き方覚えればいいんじゃね?
上は他人がどのバージョンで開くか分らないときの話ね。 自分しか使わないなら自分が分ってる方法でいいでしょう。
てst
てst
てst
>>961 質問者が
【2 Excelのバージョン 】 自宅2003、会社2007、ノート2002
とか書いてる場合はな。
そうでなければそこまで気を遣う必要は無い。
質問者が何使ってようと、どのバージョンでも動くように気を遣う必要があるなら
使ってるExcelのバージョン書かせる意味もないし、ここの質問者は客でもないので
質問者の使ってるバージョンにだけ合わせて答えればOK。
967 :
名無しさん@そうだ選挙にいこう :2011/04/29(金) 21:50:16.88
はいはい、だうも失礼しました。 お気に召さなくてごめんなさいね。
まあ、いいよ
【1 OSの種類 .】 WindowsVista 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 条件付き書式 列単位 セル 背景色 塗り分け 条件付き書式でセルの内容によって、行単位のセルの背景色を塗り分けができるのはググって理解できたのですが 条件付き書式でセルの内容によって、列単位のセルの背景色を塗り分けはググっても分かりませんでした。 これは可能なのでしょうか? エクセル初心者にもほどがありカエレ、と言われそうですがご教授お願いします。
970 :
複乳 :2011/04/30(土) 14:36:56.68
>>969 「数式が」
=(MOD(COLUMN(),3)=1)
こんな感じかね
見たのはrowが入った式と思うから、そこをcolumnに帰ればいいよ
>>969 次の数式を満たす場合に値を書式設定で
=$A1
とかになっているのを
=A$1
にすればいいと思うよ。
5段階評価を視覚的に見せるための下図のようなエクセルファイルがあります
ttp://www.gartner.co.jp/b3i/research/110329_sor/img/img_04.gif (内容は無関係です)
実際にこのようなシートを百枚ほど集めたブックとして存在しているのですが
現在、グラフの部分が、図形の円と縦線と横線と1/4黒丸を重ねて作ってあり
しかもなぜか同じ図形が幾重にも重なっていたりでものすごく大きなファイルになっています
このファイルそのものを、別のPCで他人が開き編集することもあります
本題ですが、この見た目をほぼそのままにファイルサイズを小さくしたいです
どうすれば良いのか、自分で思いついたのは、
1 - 円グラフの外字フォントを自前で作成する方法…ですが他人のPCでは外字が表示されません
2 - 用意した5種類のグラフのビットマップ画像を貼っていく方法…ですが他人が編集しにくいと思います
そこで 3 - VBAでもって、グラフ画像(もしくは自前で作成した外字をファイルに組み込んで)を
任意のセルに貼り付けたり出来ないかな…と思ったのですが…
それともうひとつ、4 - 1/4円グラフの入ったフォントセットを会社で購入してもらう…ですかね
【1 OSの種類 .】 WindowsXPsp3
【2 Excelのバージョン 】 Excel2002(officeXP)
【3 VBAが使えるか .】 はい(ネットで見つけたすぐ使えるサンプルをいじる程度)
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 1/4円グラフ 5段階評価 外字 VBA
長々と書きましたがもしかしてセルを四つに切って
[■□□□][■■□□][■■■□]のようにセルを染めて妥協すれば良いのかな
974 :
複乳 :2011/05/01(日) 16:53:44.95
>>974 円グラフ文字はあったんですね…
アドバイスに従いまして画像を使わない案のどちらかで行こうと思います
ありがとうございました
せっかくREPT関数とユニコード文字知ってるなら、
そういうグラフは■より0x2588使おうな
0x2588は隙間が無くなるからグラフとして綺麗(サイズによっては隙間が出来ることもあるが)
あえて僅かな隙間をあけて個数を明確にしたい場合は0x2589
>>974 のような二次元表の場合は、横幅が抑えられるというメリットもある
ttp://ourfilehost.net/up/file1/img/up3426.png あと、¼円グラフも、埋め込むならIFを無駄に繋げるよりCHOOSEがいいぞ
×=IF(A2=0,"@","")&IF(A2=1,"A","")&IF(A2=2,"B","")&IF(A2=3,"C","")&IF(A2=4,"D","")
○=CHOOSE(A2+1,"@","A","B","C","D")
複乳の回答はいつもいまひとつ足りない。
980 :
複乳 :2011/05/02(月) 11:44:32.01
どなたか次スレお願いします。建てられなかった
981 :
名無しさん@そうだ選挙にいこう :2011/05/02(月) 12:45:57.21
あれ、複乳この間Lv=24(10以上でスレ立て可)だったのに どっかで荒らしでもして水遁食らったのか?
荒らすほどの若さがない クッキー間違えて全部消しちゃった(´・ω・`)
UMExcel
うめ
梅 と き ま す ね
うめ
うめまつり
うめ
と掛けまして
1
993 :
忍法帖【Lv=28,xxxPT】 :2011/05/05(木) 14:48:10.04
忍法帳って何?
あああ
うめ
いきうめ
うめ
梅の花
1000
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。